diff --git a/css/all.css b/css/all.css
new file mode 100644
index 00000000..c1eec060
--- /dev/null
+++ b/css/all.css
@@ -0,0 +1,1235 @@
+* {
+ font-size: 100.01%; }
+
+html {
+ font-size: 62.5%;
+ height: 100%; }
+
+body {
+ margin: 0;
+ height: 100%;
+ font: 1.3rem/1.61538 "Montserrat", sans-serif; }
+
+p {
+ font-family: "Source Sans Pro", sans-serif; }
+
+.btn, a {
+ -webkit-transition: color linear .4s, background-color linear .4s, border-color linear .4s;
+ transition: color linear .4s, background-color linear .4s, border-color linear .4s; }
+ .btn:hover, a:hover {
+ text-decoration: none;
+ outline: none; }
+
+.btn-link {
+ display: inline-block;
+ vertical-align: top;
+ background: #f4f4f4;
+ border-radius: 3px;
+ font-weight: bold;
+ font-size: 1.4rem;
+ line-height: 1.3571428;
+ padding: 7px 24px; }
+ .btn-link:hover {
+ background: #e0e0e0; }
+
+#wrapper {
+ width: 100%;
+ height: 100%;
+ display: table;
+ overflow: hidden;
+ table-layout: fixed; }
+
+#footer {
+ width: 100%;
+ overflow: hidden;
+ display: inline;
+ height: 1%; }
+
+.btn-blue {
+ background: #3b5998;
+ color: #fff; }
+ .btn-blue:hover {
+ color: #fff;
+ background: #21396b; }
+
+.logo {
+ float: left;
+ margin: 0 0 0 15px;
+ width: 151px;
+ height: 41px; }
+
+.social-placeholder {
+ padding: 9px 0 0;
+ height: 35px; }
+ .social-placeholder img {
+ vertical-align: top;
+ max-width: 100%;
+ height: auto; }
+
+#header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 99;
+ padding: 31px 0 32px;
+ background: #fff;
+ box-shadow: 0 1px 1px rgba(196, 194, 202, 0.23);
+ -webkit-backface-visibility: hidden;
+ /* Prevent Chrome bug because of on-scroll effect in other section */ }
+ #header .btn {
+ float: right;
+ margin: 2px 0 0 59px;
+ height: 38px;
+ min-width: 145px;
+ padding: 7px;
+ font-weight: bold;
+ font-size: 1.6rem;
+ line-height: 22px;
+ letter-spacing: 0; }
+
+#nav {
+ overflow: hidden;
+ text-align: right;
+ font-size: 0;
+ letter-spacing: -4px;
+ white-space: nowrap; }
+ #nav .nav-drop {
+ overflow: hidden; }
+ #nav ul {
+ padding: 9px 0 5px;
+ margin: 0; }
+ #nav li {
+ display: inline-block;
+ vertical-align: top;
+ font-size: 1.6rem;
+ line-height: 24px;
+ font-weight: bold;
+ letter-spacing: 0;
+ white-space: normal;
+ margin: 0 0 0 34px; }
+ #nav li a {
+ display: block;
+ color: #07A6CB; }
+ #nav li a:hover {
+ text-decoration: none;
+ color: #0675A0; }
+
+.nav-opener {
+ display: none;
+ float: right;
+ width: 31px;
+ height: 31px;
+ position: relative;
+ text-indent: -9999px;
+ overflow: hidden; }
+
+.nav-opener:before, .nav-opener:after, .nav-opener span {
+ background: #333;
+ border-radius: 4px;
+ position: absolute;
+ top: 17px;
+ left: 3px;
+ right: 3px;
+ height: 3px;
+ margin-top: -2px;
+ /* height/2 */
+ -webkit-transition: all 0.2s linear;
+ transition: all 0.2s linear; }
+
+.nav-opener:before {
+ content: '';
+ top: 8px;
+ left: 30%; }
+
+.nav-opener:after {
+ content: '';
+ top: 26px; }
+
+.nav-active .nav-opener span {
+ opacity: 0; }
+
+.nav-opener:hover {
+ opacity: .9; }
+
+.nav-active .nav-opener:after, .nav-active .nav-opener:before {
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ top: 16px;
+ left: 5%;
+ right: 5%; }
+
+.nav-active .nav-opener:after {
+ -moz-transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+
+.visual {
+ min-height: 904px;
+ position: relative;
+ overflow: hidden;
+ text-align: center;
+ color: #0675A0;
+ font-size: 0;
+ letter-spacing: -4px;
+ padding: 104px 0 0;
+ background: #000; }
+ .visual .bg-stretch {
+ position: absolute;
+ bottom: 0;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%); }
+ .visual > .container {
+ display: inline-block;
+ vertical-align: top;
+ position: relative;
+ z-index: 1;
+ font-size: 2.4rem;
+ line-height: 1.5;
+ letter-spacing: 0; }
+ .visual h1 {
+ margin: 0 0 10px;
+ font-size: 8.2rem;
+ line-height: 1.12;
+ font-weight: bold;
+ color: #fff; }
+ .visual p {
+ margin: 0 0 8px; }
+ .visual p.tagline {
+ line-height: 1.1;
+ font-size: 2.6rem; }
+ .visual .info {
+ display: block;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ color: #494654;
+ text-transform: uppercase; }
+ .visual .text-block {
+ padding: 90px 0; }
+
+#cta {
+ position: relative;
+ z-index: 1;
+ margin: -80px 0 55px;
+ text-align: center;
+ color: #848e97;
+ font-size: 1.4rem;
+ line-height: 1.28571428; }
+ #cta .btn {
+ margin: 0 0 16px;
+ height: 62px;
+ font-size: 2.1rem;
+ line-height: 26px;
+ font-weight: bold;
+ padding: 17px;
+ min-width: 390px; }
+ #cta p {
+ margin: 0 0 18px; }
+
+.cta-list {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ text-align: center;
+ font-size: 0;
+ letter-spacing: -4px;
+ white-space: nowrap;
+ color: #848e97; }
+ .cta-list li {
+ display: inline-block;
+ vertical-align: top;
+ margin: 0 20px;
+ font-size: 1.4rem;
+ line-height: 1.285;
+ letter-spacing: 0;
+ white-space: normal; }
+ .cta-list .btn {
+ position: relative;
+ margin: 0 0 15px;
+ height: 50px;
+ line-height: 30px;
+ padding: 10px 50px;
+ min-width: 240px; }
+ .cta-list .btn i {
+ position: absolute;
+ left: 24px;
+ top: 50%;
+ font-size: 2.4rem;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
+ .cta-list .btn i.fa-twitter {
+ font-size: 2rem; }
+ .cta-list .btn i.fa-facebook {
+ font-size: 1.6rem; }
+
+.text-box {
+ text-align: center;
+ font-size: 2.1rem;
+ line-height: 1.524;
+ color: #716E79;
+ padding-bottom: 23px; }
+ .text-box h2 {
+ margin: 0 0 20px;
+ font-size: 5.4rem;
+ line-height: 1.148;
+ text-transform: uppercase;
+ font-weight: bold; }
+ .text-box p {
+ margin: 0 0 35px; }
+
+.rounded {
+ border-radius: 40px; }
+
+.main {
+ padding: 47px 0; }
+ .main .content {
+ padding: 25px 15px 23px;
+ font-size: 1.3rem;
+ line-height: 1.615;
+ color: #848e97; }
+ .main h3 {
+ margin: 0 0 46px;
+ font-size: 2.8rem;
+ line-height: 1.285;
+ font-weight: 300;
+ color: #A1B1C5; }
+ .main h4 {
+ margin: 0 0 12px;
+ font-size: 16px;
+ line-height: 1.625;
+ font-weight: bold; }
+ .style-01 .main h4 {
+ margin: 0 0 7px; }
+ .main p {
+ margin: 0 0 23px; }
+ .main .date {
+ display: block;
+ margin: -5px 0 0;
+ padding: 0 0 22px; }
+ .main .btn-holder {
+ padding: 32px 0 0; }
+
+.area {
+ padding: 77px 0 47px;
+ background: #f4f4f4; }
+ .area h2 {
+ margin: 0 0 28px;
+ font-size: 4rem;
+ line-height: 1.107;
+ font-weight: bold; }
+
+.slide-holder {
+ padding: 0 0 0 65px; }
+ .slide-holder .img-slide {
+ position: relative;
+ margin: 0 0 -140px; }
+ .slide-holder .img-slide img {
+ position: relative;
+ top: 0;
+ left: -20px; }
+
+/* See Blueprint http://tympanus.net/codrops/2013/07/18/on-scroll-effect-layout/ */
+.scroll-effect-init .img-slide {
+ -webkit-transition: -webkit-transform 1s;
+ transition: transform 1s; }
+
+.scroll-effect-init .img-slide {
+ -webkit-transform: translateX(50px);
+ -moz-transform: translateX(50px);
+ transform: translateX(50px); }
+
+.slide-holder.scroll-effect-animate .img-slide {
+ -webkit-transform: translateX(0px);
+ -moz-transform: translateX(0px);
+ transform: translateX(0px);
+ opacity: 1; }
+
+.visual-list {
+ margin: 0 -25px -40px -15px;
+ padding: 28px 0;
+ list-style: none;
+ color: #848e97; }
+ .visual-list .img-holder {
+ float: left;
+ width: 90px;
+ text-align: center;
+ margin: 7px 45px 0 0; }
+ .visual-list .img-holder img {
+ vertical-align: top; }
+ .visual-list .text-holder {
+ overflow: hidden; }
+ .visual-list li {
+ padding: 0 0 29px; }
+ .visual-list h3 {
+ margin: 0 0 10px;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ font-weight: bold;
+ color: #07A6CB; }
+ .visual-list p {
+ margin: 0 0 21px; }
+
+.cycle-gallery {
+ position: relative;
+ text-align: center;
+ padding: 40px 200px 33px;
+ margin: 0 0 60px;
+ font-size: 2rem;
+ line-height: 1.6; }
+ .cycle-gallery p a {
+ font-weight: 400; }
+ .cycle-gallery .img-box {
+ display: block;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ padding: 0 0 40px; }
+ .cycle-gallery .img-box .img-holder {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 22px 0 0;
+ overflow: hidden; }
+ .cycle-gallery .img-box .img-holder img {
+ border-radius: 50%; }
+ .cycle-gallery .img-box .text-holder {
+ display: inline-block;
+ vertical-align: middle;
+ text-align: left; }
+ .cycle-gallery .img-box h3 {
+ margin: 0;
+ font-size: 2.4rem;
+ line-height: 1.33333;
+ color: #07A6CB; }
+ .cycle-gallery .img-box a {
+ font-weight: bold; }
+ .cycle-gallery:after {
+ content: "";
+ position: absolute;
+ bottom: 0;
+ left: 180px;
+ right: 180px;
+ height: 1px;
+ background: #f4f4f4; }
+ .cycle-gallery [class^='btn-'] {
+ position: absolute;
+ top: 50%;
+ margin: 23px 0 0;
+ z-index: 9;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateX(-50%);
+ color: #a3a3a3; }
+ .cycle-gallery [class^='btn-']:hover {
+ color: #000; }
+ .cycle-gallery .btn-prev {
+ left: 90px; }
+ .cycle-gallery .btn-next {
+ right: 90px; }
+ .cycle-gallery .date {
+ display: block;
+ font-style: normal;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ font-weight: normal;
+ color: #848e97; }
+
+.cycle-gallery .mask {
+ position: relative;
+ overflow: hidden; }
+
+.cycle-gallery .mask .slideset {
+ width: 99999px;
+ float: left; }
+
+.cycle-gallery .mask .slide {
+ float: left; }
+
+.cycle-gallery .mask .slide.active {
+ z-index: 1; }
+
+.visual-container {
+ background: #4E384E;
+ text-align: center; }
+ .visual-container .visual-area {
+ position: relative;
+ overflow: hidden;
+ padding: 90px 0 70px;
+ font-size: 1.4rem;
+ line-height: 1.5;
+ color: #fff; }
+ .visual-container .visual-area > .container {
+ position: relative;
+ z-index: 1; }
+ .visual-container .visual-area > .container > p {
+ margin: 0 120px 5px; }
+ .visual-container .visual-area .bg-stretch {
+ position: absolute;
+ top: 0;
+ left: 0; }
+ .visual-container .visual-area + .visual-area {
+ padding: 70px 0; }
+ .visual-container .visual-area + .visual-area:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 180px;
+ right: 180px;
+ height: 1px;
+ background: rgba(102, 74, 102, 0.6); }
+ .visual-container h2 {
+ margin: 0 0 70px;
+ font-size: 4.8rem;
+ line-height: 1.166666;
+ font-weight: bold;
+ color: #e3dfed; }
+ .visual-container p.silent {
+ color: #746074; }
+
+.testimonials {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ color: #fff;
+ margin-bottom: -46px;
+ overflow: hidden;
+ font-size: 0;
+ letter-spacing: -4px; }
+ .testimonials li {
+ display: inline-block;
+ vertical-align: top;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ width: 33.3333%;
+ letter-spacing: 0; }
+ .testimonials .img-holder img {
+ display: inline-block;
+ vertical-align: middle; }
+ .testimonials .img-holder:before {
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+ width: 1px;
+ height: 100px;
+ margin: 0 0 0 -1px; }
+ .testimonials p {
+ margin: 0 30px 70px; }
+
+.pricing-tables {
+ padding: 0 7px 25px;
+ font-size: 0;
+ letter-spacing: -4px;
+ white-space: nowrap; }
+ .pricing-tables h3 {
+ font-size: 2.1rem;
+ line-height: 1.5;
+ text-transform: uppercase;
+ color: #fff; }
+
+.plan {
+ display: inline-block;
+ vertical-align: top;
+ width: 24%;
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 0;
+ min-height: 100px;
+ margin: 50px 3px;
+ padding: 0 0 35px;
+ font-size: 1.6rem;
+ letter-spacing: 0;
+ white-space: normal;
+ text-align: center;
+ color: #fff; }
+ .plan .head {
+ background: rgba(255, 255, 255, 0.05);
+ padding: 8px 0 13px;
+ margin-bottom: 30px; }
+
+.plan.recommended .head {
+ padding: 12px 0 20px;
+ background: rgba(0, 0, 0, 0.1); }
+
+.plan .price {
+ display: block;
+ font-weight: bold;
+ text-transform: uppercase; }
+
+.price .price-main {
+ display: block;
+ padding: 0 0 17px;
+ font-size: 6.4rem;
+ vertical-align: top;
+ line-height: 1;
+ white-space: nowrap; }
+ .recommended .price .price-main {
+ font-size: 8.2rem; }
+
+.price .price-main .symbol {
+ display: inline-block;
+ color: rgba(255, 255, 255, 0.18);
+ vertical-align: top;
+ margin: 0 7px 0 0;
+ position: relative;
+ font-weight: normal; }
+
+.price .price-additional {
+ color: rgba(255, 255, 255, 0.25);
+ display: block;
+ padding: 0 0 33px;
+ font-weight: normal;
+ font-size: 1.4rem; }
+ .recommended .price .price-additional {
+ padding: 0 0 43px; }
+
+.plan .btn {
+ height: 42px;
+ font-size: 1.5rem;
+ border: 0;
+ line-height: 26px;
+ padding: 8px 40px;
+ text-transform: uppercase;
+ color: #fff;
+ font-weight: bold; }
+ .plan .btn.btn-default {
+ background: rgba(255, 255, 255, 0.15); }
+ .plan .btn.btn-default:hover {
+ background: rgba(255, 255, 255, 0.4); }
+
+.recommended .btn {
+ padding: 14px 50px;
+ height: 52px;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ margin-bottom: 7px; }
+
+.plan ul {
+ display: block;
+ position: relative;
+ margin: 0;
+ font-size: 1.6rem;
+ line-height: 1.75;
+ padding: 29px 0 22px;
+ min-height: 117px;
+ list-style: none; }
+
+.plan ul:before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 50%;
+ width: 60px;
+ margin: 0 0 0 -30px;
+ height: 5px;
+ background: #0675A0; }
+
+.plan.recommended {
+ margin-top: 0;
+ width: 28%;
+ position: relative;
+ z-index: 99;
+ background: rgba(0, 0, 0, 0.2);
+ border-color: #0675A0; }
+ .plan.recommended ul {
+ min-height: 176px;
+ line-height: 32px;
+ padding: 37px 0 22px; }
+
+.subscribe {
+ margin: -30px 17px 0 0;
+ text-align: right;
+ white-space: nowrap; }
+ .subscribe h3 {
+ margin: 0 15px;
+ float: left;
+ font-size: 3rem;
+ line-height: 1.4;
+ font-weight: bold;
+ color: #07A6CB; }
+ .subscribe .form-group {
+ overflow: hidden; }
+ .subscribe .form-control {
+ padding: 10px 28px;
+ font-size: 1.4rem;
+ height: 42px;
+ min-width: 335px;
+ line-height: 20px;
+ border-color: #fff;
+ font-weight: bold;
+ box-shadow: 0 0 0 #fff; }
+ .subscribe .btn {
+ float: right;
+ height: 42px;
+ font-size: 1.3rem;
+ line-height: 20px;
+ padding: 10px 35px;
+ font-weight: bold;
+ text-transform: uppercase;
+ margin: 0 0 0 20px; }
+
+.footer-holder {
+ position: relative;
+ padding: 62px 15px 92px;
+ font-size: 1.4rem;
+ line-height: 1.6428571429;
+ color: #848e97; }
+ .footer-holder:before {
+ content: '';
+ position: absolute;
+ height: 1px;
+ top: 0;
+ right: 15px;
+ left: 15px;
+ background: #f4f4f4; }
+ .footer-holder .logo {
+ margin: 0 0 23px;
+ padding: 4px 0 0;
+ float: none;
+ display: block; }
+ .footer-holder .logo + p {
+ line-height: 21px; }
+ .footer-holder h4 {
+ margin: 0 0 14px;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ color: #053767;
+ font-weight: bold; }
+ .footer-holder ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ font-weight: bold;
+ font-size: 1.5rem;
+ line-height: 1.55; }
+ .footer-holder ul a {
+ color: #0675A0; }
+ .footer-holder ul a:hover {
+ color: #053767; }
+ .footer-holder .text-holder {
+ padding: 0 0 0 10px; }
+ .footer-holder .text-frame {
+ padding: 0 0 0 25px; }
+ .footer-holder .phone {
+ display: block;
+ margin: 0 0 6px;
+ font-size: 3rem;
+ line-height: 1.2; }
+ .footer-holder .phone a {
+ color: #31384d; }
+ .footer-holder .available {
+ display: block;
+ padding: 0 0 29px;
+ font-size: 1.2rem;
+ line-height: 1.3333333;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: #848e97; }
+ .footer-holder address {
+ display: block;
+ margin: -3px 0 0;
+ font-style: normal;
+ line-height: 23px; }
+
+@media only screen and (max-width: 992px) {
+ .nav-opener {
+ display: inline-block;
+ vertical-align: top; }
+
+ .opener-holder {
+ float: right;
+ display: inline-block;
+ vertical-align: top;
+ position: relative;
+ padding: 0 0 0 25px;
+ margin: 7px 25px 0; }
+ .opener-holder:before {
+ position: absolute;
+ content: "";
+ width: 1px;
+ left: 0;
+ top: 0;
+ bottom: -6px;
+ background: #f4f4f4; }
+
+ #header {
+ position: relative;
+ padding: 0; }
+ #header > .container {
+ padding: 29px 0 0; }
+ #header .logo {
+ margin: 3px 0 32px 25px; }
+ #header .btn {
+ float: none;
+ height: 48px;
+ font-size: 1.7rem;
+ line-height: 22px;
+ margin: 0;
+ padding: 12px 40px;
+ display: inline-block;
+ vertical-align: top; }
+
+ #nav {
+ overflow: visible;
+ font-size: 1.8rem;
+ line-height: 1.3333333;
+ letter-spacing: 0;
+ font-weight: normal; }
+ #nav .nav-drop {
+ display: block;
+ clear: both;
+ width: 100%;
+ max-width: 400px;
+ position: absolute;
+ right: 0;
+ top: 100%;
+ pointer-events: none;
+ opacity: 0;
+ -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
+ transition: transform 0.3s, opacity 0.3s;
+ -webkit-transform: translate3d(0, 30px, 0);
+ transform: translate3d(0, 30px, 0); }
+ #nav .nav-drop > ul {
+ display: block;
+ padding: 0;
+ text-align: left; }
+ #nav .nav-drop > ul li {
+ position: relative;
+ margin: 0;
+ padding: 0 35px;
+ display: block;
+ font-size: 1.8rem;
+ line-height: 1.3333333;
+ font-weight: normal; }
+ #nav .nav-drop > ul li.active:before {
+ content: '';
+ position: absolute;
+ top: 20px;
+ bottom: 20px;
+ width: 4px;
+ left: 0;
+ background: #0675A0; }
+ #nav .nav-drop > ul li a {
+ display: block;
+ margin: 0 -9999px;
+ padding: 20px 9979px;
+ border-bottom: 1px solid #3E3D3F;
+ color: #fff;
+ background: rgba(51, 51, 51, 0.98); }
+ #nav .nav-drop > ul li a:active, #nav .nav-drop > ul li a:focus, #nav .nav-drop > ul li a:hover {
+ text-decoration: none;
+ color: #0675A0; }
+ #nav .nav-drop > ul li.active {
+ position: relative; }
+ #nav .nav-drop > ul li.active a {
+ color: #858585; }
+ #nav .nav-drop .drop-holder {
+ margin: 0 -9999px;
+ padding: 20px 10014px;
+ background: #333;
+ text-align: left;
+ color: #9a9a9a; }
+ #nav .nav-drop .drop-holder span {
+ display: block;
+ margin: 0 0 20px; }
+ #nav .nav-drop .drop-holder ul {
+ padding: 0; }
+ #nav .nav-drop .drop-holder ul li {
+ padding: 0;
+ margin: 0; }
+ #nav .nav-drop .drop-holder ul li + li {
+ margin: 0 0 0 20px; }
+ #nav .nav-drop .drop-holder ul a {
+ font-size: 3rem;
+ color: #fff; }
+ #nav .nav-drop .drop-holder ul a:hover {
+ color: #0675A0; }
+
+ .nav-active #nav .nav-drop {
+ pointer-events: auto;
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0); }
+
+ #cta {
+ margin: -80px 0 41px; }
+
+ .social-placeholder {
+ padding: 0; }
+
+ .visual {
+ padding: 0;
+ min-height: 760px; }
+ .visual .text-block {
+ padding: 70px 0; }
+ .visual:before {
+ display: none; }
+ .visual .bg-stretch {
+ bottom: -60px; }
+
+ .area {
+ padding: 40px 0 47px; }
+
+ .text-box {
+ font-size: 1.6rem;
+ line-height: 1.625;
+ padding-bottom: 13px; }
+
+ .main .text-box p {
+ margin: 0 0 33px; }
+
+ .text-box h2 {
+ font-size: 4.8rem;
+ line-height: 1.333333; }
+
+ .visual-list {
+ margin: 0;
+ padding: 28px 0 0 15px; }
+ .visual-list .img-holder {
+ width: 120px;
+ margin: 7px 20px 0 0; }
+ .visual-list li {
+ padding: 0 0 19px; }
+
+ .slide-holder {
+ padding: 0;
+ margin: 0 0 -130px;
+ text-align: center; }
+
+ .slide-holder .img-slide img {
+ position: relative;
+ left: -3px; }
+
+ .area h2 {
+ text-align: center;
+ font-size: 4.8rem;
+ line-height: 1.125; }
+
+ .cycle-gallery {
+ margin: 0 0 30px;
+ padding: 85px 35px 0;
+ font-size: 1.7rem;
+ line-height: 1.412; }
+ .cycle-gallery .img-box {
+ padding: 0 0 35px; }
+ .cycle-gallery [class^='btn-'] {
+ margin: 67px 0 0; }
+ .cycle-gallery .btn-prev {
+ left: 0; }
+ .cycle-gallery .btn-next {
+ right: 0; }
+ .cycle-gallery:after {
+ display: none; }
+ .cycle-gallery .date {
+ margin: -10px 0 0; }
+
+ .testimonials li {
+ width: 50%; }
+ .testimonials li p {
+ margin: 0 10px 18px; }
+
+ .cta-list {
+ margin: 0 0 -16px; }
+ .cta-list li {
+ display: block;
+ margin: 0; }
+ .cta-list .btn {
+ margin: 0 0 15px;
+ min-width: 280px; }
+ .cta-list p {
+ margin: 0 0 26px; }
+
+ .visual-container .visual-area {
+ padding: 68px 0 84px; }
+ .visual-container h2 {
+ margin: 0 0 53px;
+ font-size: 4.8rem;
+ line-height: 1.25; }
+ .visual-container .visual-area + .visual-area {
+ padding: 54px 0 55px; }
+ .visual-container .visual-area + .visual-area:after {
+ left: 65px;
+ right: 65px; }
+
+ .testimonials p {
+ margin: 0 30px 36px; }
+
+ .pricing-tables {
+ padding: 20px 0 60px; }
+
+ .plan {
+ display: block;
+ width: auto;
+ margin: 0 auto -5px;
+ max-width: 310px; }
+ .plan.recommended {
+ max-width: 370px;
+ width: auto; }
+
+ .visual-container .visual-area > .container > p {
+ margin: 0 40px; }
+
+ .subscribe {
+ text-align: center;
+ margin: 2px 0 0; }
+ .subscribe .form-inline {
+ min-width: 430px;
+ display: inline-block;
+ vertical-align: top; }
+ .subscribe .form-group {
+ margin: 0; }
+ .subscribe .form-control {
+ min-width: 260px; }
+
+ .subscribe h3 {
+ font-size: 3rem;
+ line-height: 1.2;
+ float: none;
+ margin: 0 0 44px; }
+
+ .main h3 {
+ margin: 0 0 26px; }
+
+ .main .content {
+ padding: 5px 15px 0; }
+
+ .main .col-md-4 h3:first-child {
+ margin: 40px 0 26px; }
+
+ .main .col-md-4:first-child h3 {
+ margin: 0 0 26px; }
+
+ .main .btn-holder {
+ padding: 12px 0; }
+
+ .footer-holder {
+ padding: 47px 19px 70px; }
+ .footer-holder .text-holder {
+ padding: 0; }
+ .footer-holder .text-frame {
+ padding: 0; }
+ .footer-holder:before {
+ left: 0;
+ right: 0; }
+
+ .footer-holder .logo + p {
+ margin: 0 0 29px; }
+
+ .footer-holder ul {
+ margin: 0 0 26px; }
+
+ .footer-holder address {
+ margin: -3px 0 29px; } }
+@media only screen and (max-width: 767px) {
+ .testimonials {
+ margin: 0 0 -20px; }
+ .testimonials p {
+ margin: 0 0 20px; }
+ .testimonials li {
+ width: 100%; }
+ .testimonials li p {
+ margin: 0 30px 36px; } }
+@media only screen and (max-width: 479px) {
+ body {
+ min-width: 320px; }
+
+ #header > .container {
+ padding: 10px 0 0; }
+
+ .subscribe .form-inline {
+ min-width: 280px; }
+
+ #header .btn {
+ height: 30px;
+ margin: 8px 0 0;
+ font-size: 1.2rem;
+ line-height: 20px;
+ padding: 3px 20px;
+ min-width: 0; }
+ #header .logo {
+ margin: 4px 0 10px 10px;
+ width: 130px; }
+
+ .opener-holder {
+ margin: 4px 10px;
+ padding: 0 0 0 10px; }
+
+ .visual {
+ min-height: 340px; }
+ .visual > .container {
+ font-size: 1.6rem;
+ line-height: 1.5; }
+ .visual .bg-stretch {
+ max-width: 100%;
+ bottom: 20px; }
+ .visual .info {
+ background: rgba(255, 255, 255, 0.3);
+ color: #BEBCC3; }
+
+ .visual h1 {
+ font-size: 5.4rem;
+ line-height: 1.148; }
+
+ .visual .text-block {
+ padding: 30px 0; }
+
+ #nav .nav-drop > ul li.active:before {
+ top: 15px;
+ bottom: 15px; }
+
+ .area, .main {
+ padding: 40px 0; }
+
+ #cta {
+ margin: -61px 0 0; }
+ #cta .btn {
+ margin: 0 0 12px;
+ height: 42px;
+ font-size: 1.4rem;
+ line-height: 20px;
+ padding: 10px 30px;
+ min-width: 0; }
+
+ .text-box {
+ font-size: 1.4rem;
+ line-height: 1.285; }
+ .text-box h2 {
+ font-size: 2.8rem;
+ line-height: 1.286; }
+
+ .visual-container h2, .area h2 {
+ margin: 0 0 20px;
+ font-size: 3.2rem;
+ line-height: 1.125; }
+
+ .visual-list {
+ padding: 20px 0 0; }
+ .visual-list .img-holder {
+ margin: 0 10px 0 0; }
+ .visual-list .text-holder {
+ overflow: visible; }
+
+ .slide-holder {
+ margin: 0 0 -80px; }
+ .slide-holder .img-slide img {
+ height: 416px;
+ width: auto; }
+
+ .cycle-gallery {
+ text-align: center; }
+ .cycle-gallery .img-box {
+ padding: 0 0 10px; }
+ .cycle-gallery .img-box .img-holder {
+ margin: 0 0 10px;
+ display: block; }
+
+ .cycle-gallery .img-box .text-holder {
+ display: block;
+ text-align: center; }
+
+ .visual-container .visual-area + .visual-area, .visual-container .visual-area {
+ padding: 40px 0; }
+
+ .plan {
+ max-width: 260px; }
+ .plan .head {
+ padding: 6px 12px 20px; }
+ .plan.recommended {
+ max-width: 300px; }
+
+ .pricing-tables {
+ padding: 20px 0 40px; }
+
+ .visual-container .visual-area > .container > p {
+ margin: 0; }
+
+ .pricing-tables h3 {
+ font-size: 1.6rem;
+ line-height: 1.5;
+ margin: 20px 0 10px; }
+
+ .price .price-main {
+ font-size: 5rem;
+ line-height: 1.12;
+ padding: 0 0 12px; }
+
+ .price .price-main .symbol {
+ font-size: 1.6;
+ line-height: 1.5; }
+
+ .price .price-additional {
+ padding: 0 0 24px;
+ font-size: 1.2rem;
+ line-height: 1.5; }
+
+ .subscribe {
+ margin: -20px 0; }
+
+ .subscribe .form-group {
+ margin: 0; }
+
+ .subscribe .btn {
+ padding: 10px 25px;
+ margin: 0 0 0 10px; }
+
+ .subscribe .form-control {
+ min-width: 0; }
+
+ .subscribe h3 {
+ font-size: 2rem;
+ line-height: 1.3;
+ margin: 0 0 20px; }
+
+ .main .content {
+ padding: 0; }
+
+ .main .col-md-4 h3:first-child {
+ margin: 20px 0 10px; }
+
+ .main .col-md-4:first-child h3 {
+ margin: 0 0 10px; }
+
+ .footer-holder {
+ padding: 20px 0; }
+
+ .cycle-gallery {
+ font-size: 1.4rem;
+ line-height: 1.285; } }
+@media only screen and (min-width: 1025px) {
+ [href^='tel:'] {
+ cursor: default;
+ pointer-events: none; } }
+
+.main.services img {
+ width: 85px;
+ margin: 10px;
+}
+
+.main.services .custom {
+ height: 100px;
+ display: block;
+ color: #93CFE0;
+ width: 100%;
+ font-size: 100px;
+}
+
+.download-section .os {
+ display: block;
+ margin-bottom: 40px;
+ font-size: 100px;
+ color: #07A6CB;
+}
+
+.area.features li {
+ height: 140px;
+}
+
+.area.features .fa {
+ display: block;
+ font-size: 100px;
+ color: #0675A0;
+}
+
+/*# sourceMappingURL=all.css.map */
diff --git a/css/all.css.map b/css/all.css.map
new file mode 100644
index 00000000..d1e230e4
--- /dev/null
+++ b/css/all.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "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",
+"sources": ["../scss/all.scss","../scss/bootstrap/_variables.scss","../scss/_bootstrap-custom.scss"],
+"names": [],
+"file": "all.css"
+}
\ No newline at end of file
diff --git a/css/bootstrap.css b/css/bootstrap.css
new file mode 100644
index 00000000..acce77bc
--- /dev/null
+++ b/css/bootstrap.css
@@ -0,0 +1,5622 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%; }
+
+body {
+ margin: 0; }
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block; }
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline; }
+
+audio:not([controls]) {
+ display: none;
+ height: 0; }
+
+[hidden],
+template {
+ display: none; }
+
+a {
+ background-color: transparent; }
+
+a:active,
+a:hover {
+ outline: 0; }
+
+abbr[title] {
+ border-bottom: 1px dotted; }
+
+b,
+strong {
+ font-weight: bold; }
+
+dfn {
+ font-style: italic; }
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0; }
+
+mark {
+ background: #ff0;
+ color: #000; }
+
+small {
+ font-size: 80%; }
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline; }
+
+sup {
+ top: -0.5em; }
+
+sub {
+ bottom: -0.25em; }
+
+img {
+ border: 0; }
+
+svg:not(:root) {
+ overflow: hidden; }
+
+figure {
+ margin: 1em 40px; }
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0; }
+
+pre {
+ overflow: auto; }
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0; }
+
+button {
+ overflow: visible; }
+
+button,
+select {
+ text-transform: none; }
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer; }
+
+button[disabled],
+html input[disabled] {
+ cursor: default; }
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0; }
+
+input {
+ line-height: normal; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0; }
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box; }
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em; }
+
+legend {
+ border: 0;
+ padding: 0; }
+
+textarea {
+ overflow: auto; }
+
+optgroup {
+ font-weight: bold; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important;
+ box-shadow: none !important;
+ text-shadow: none !important; }
+
+ a,
+ a:visited {
+ text-decoration: underline; }
+
+ a[href]:after {
+ content: " (" attr(href) ")"; }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")"; }
+
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: ""; }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid; }
+
+ thead {
+ display: table-header-group; }
+
+ tr,
+ img {
+ page-break-inside: avoid; }
+
+ img {
+ max-width: 100% !important; }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3; }
+
+ h2,
+ h3 {
+ page-break-after: avoid; }
+
+ 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/bootstrap/glyphicons-halflings-regular.eot");
+ src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/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: transparent; }
+
+body {
+ font-family: "Montserrat", sans-serif;
+ font-size: 16px;
+ line-height: 1.5;
+ color: #333333;
+ background-color: #fff; }
+
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit; }
+
+a {
+ color: #0675A0;
+ text-decoration: none; }
+ a:hover, a:focus {
+ color: #053767;
+ 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 {
+ display: block;
+ max-width: 100%;
+ height: auto; }
+
+.img-rounded {
+ border-radius: 6px; }
+
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.5;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto; }
+
+.img-circle {
+ border-radius: 50%; }
+
+hr {
+ margin-top: 24px;
+ margin-bottom: 24px;
+ border: 0;
+ border-top: 1px solid #eeeeee; }
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0; }
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto; }
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: #0675A0; }
+ h1 small,
+ h1 .small, h2 small,
+ h2 .small, h3 small,
+ h3 .small, h4 small,
+ h4 .small, h5 small,
+ h5 .small, h6 small,
+ h6 .small,
+ .h1 small,
+ .h1 .small, .h2 small,
+ .h2 .small, .h3 small,
+ .h3 .small, .h4 small,
+ .h4 .small, .h5 small,
+ .h5 .small, .h6 small,
+ .h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777777; }
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+ margin-top: 24px;
+ margin-bottom: 12px; }
+ h1 small,
+ h1 .small, .h1 small,
+ .h1 .small,
+ h2 small,
+ h2 .small, .h2 small,
+ .h2 .small,
+ h3 small,
+ h3 .small, .h3 small,
+ .h3 .small {
+ font-size: 65%; }
+
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+ margin-top: 12px;
+ margin-bottom: 12px; }
+ h4 small,
+ h4 .small, .h4 small,
+ .h4 .small,
+ h5 small,
+ h5 .small, .h5 small,
+ .h5 .small,
+ h6 small,
+ h6 .small, .h6 small,
+ .h6 .small {
+ font-size: 75%; }
+
+h1, .h1 {
+ font-size: 41px; }
+
+h2, .h2 {
+ font-size: 34px; }
+
+h3, .h3 {
+ font-size: 28px; }
+
+h4, .h4 {
+ font-size: 20px; }
+
+h5, .h5 {
+ font-size: 16px; }
+
+h6, .h6 {
+ font-size: 14px; }
+
+p {
+ margin: 0 0 12px; }
+
+.lead {
+ margin-bottom: 24px;
+ font-size: 18px;
+ font-weight: 300;
+ line-height: 1.4; }
+ @media (min-width: 768px) {
+ .lead {
+ font-size: 24px; } }
+
+small,
+.small {
+ font-size: 87%; }
+
+mark,
+.mark {
+ background-color: #fcf8e3;
+ padding: .2em; }
+
+.text-left {
+ text-align: left; }
+
+.text-right {
+ text-align: right; }
+
+.text-center {
+ text-align: center; }
+
+.text-justify {
+ text-align: justify; }
+
+.text-nowrap {
+ white-space: nowrap; }
+
+.text-lowercase {
+ text-transform: lowercase; }
+
+.text-uppercase {
+ text-transform: uppercase; }
+
+.text-capitalize {
+ text-transform: capitalize; }
+
+.text-muted {
+ color: #777777; }
+
+.text-primary {
+ color: #0675A0; }
+
+a.text-primary:hover {
+ color: #07A6CB; }
+
+.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; }
+
+.bg-primary {
+ background-color: #0675A0; }
+
+a.bg-primary:hover {
+ background-color: #07A6CB; }
+
+.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: 11px;
+ margin: 48px 0 24px;
+ border-bottom: 1px solid #eeeeee; }
+
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 12px; }
+ ul ul,
+ ul ol,
+ ol ul,
+ ol ol {
+ margin-bottom: 0; }
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none; }
+
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+ margin-left: -5px; }
+ .list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px; }
+
+dl {
+ margin-top: 0;
+ margin-bottom: 24px; }
+
+dt,
+dd {
+ line-height: 1.5; }
+
+dt {
+ font-weight: bold; }
+
+dd {
+ margin-left: 0; }
+
+.dl-horizontal dd:before, .dl-horizontal dd:after {
+ content: " ";
+ display: table; }
+.dl-horizontal dd:after {
+ clear: both; }
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+ .dl-horizontal dd {
+ margin-left: 180px; } }
+
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777777; }
+
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase; }
+
+blockquote {
+ padding: 12px 24px;
+ margin: 0 0 24px;
+ font-size: 20px;
+ border-left: 5px solid #eeeeee; }
+ 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.5;
+ color: #777777; }
+ blockquote footer:before,
+ blockquote small:before,
+ blockquote .small:before {
+ content: '\2014 \00A0'; }
+
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+ text-align: right; }
+ .blockquote-reverse footer:before,
+ .blockquote-reverse small:before,
+ .blockquote-reverse .small:before,
+ blockquote.pull-right footer:before,
+ blockquote.pull-right small:before,
+ blockquote.pull-right .small:before {
+ content: ''; }
+ .blockquote-reverse footer:after,
+ .blockquote-reverse small:after,
+ .blockquote-reverse .small:after,
+ blockquote.pull-right footer:after,
+ blockquote.pull-right small:after,
+ blockquote.pull-right .small:after {
+ content: '\00A0 \2014'; }
+
+address {
+ margin-bottom: 24px;
+ font-style: normal;
+ line-height: 1.5; }
+
+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;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }
+ kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none; }
+
+pre {
+ display: block;
+ padding: 11.5px;
+ margin: 0 0 12px;
+ font-size: 15px;
+ line-height: 1.5;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333333;
+ 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 {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px; }
+ .container:before, .container:after {
+ content: " ";
+ display: table; }
+ .container:after {
+ clear: both; }
+ @media (min-width: 768px) {
+ .container {
+ width: 750px; } }
+ @media (min-width: 992px) {
+ .container {
+ width: 970px; } }
+ @media (min-width: 1200px) {
+ .container {
+ width: 1170px; } }
+
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px; }
+ .container-fluid:before, .container-fluid:after {
+ content: " ";
+ display: table; }
+ .container-fluid:after {
+ clear: both; }
+
+.row {
+ margin-left: -15px;
+ margin-right: -15px; }
+ .row:before, .row:after {
+ content: " ";
+ display: table; }
+ .row:after {
+ clear: both; }
+
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px; }
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left; }
+
+.col-xs-1 {
+ width: 8.33333%; }
+
+.col-xs-2 {
+ width: 16.66667%; }
+
+.col-xs-3 {
+ width: 25%; }
+
+.col-xs-4 {
+ width: 33.33333%; }
+
+.col-xs-5 {
+ width: 41.66667%; }
+
+.col-xs-6 {
+ width: 50%; }
+
+.col-xs-7 {
+ width: 58.33333%; }
+
+.col-xs-8 {
+ width: 66.66667%; }
+
+.col-xs-9 {
+ width: 75%; }
+
+.col-xs-10 {
+ width: 83.33333%; }
+
+.col-xs-11 {
+ width: 91.66667%; }
+
+.col-xs-12 {
+ width: 100%; }
+
+.col-xs-pull-0 {
+ right: auto; }
+
+.col-xs-pull-1 {
+ right: 8.33333%; }
+
+.col-xs-pull-2 {
+ right: 16.66667%; }
+
+.col-xs-pull-3 {
+ right: 25%; }
+
+.col-xs-pull-4 {
+ right: 33.33333%; }
+
+.col-xs-pull-5 {
+ right: 41.66667%; }
+
+.col-xs-pull-6 {
+ right: 50%; }
+
+.col-xs-pull-7 {
+ right: 58.33333%; }
+
+.col-xs-pull-8 {
+ right: 66.66667%; }
+
+.col-xs-pull-9 {
+ right: 75%; }
+
+.col-xs-pull-10 {
+ right: 83.33333%; }
+
+.col-xs-pull-11 {
+ right: 91.66667%; }
+
+.col-xs-pull-12 {
+ right: 100%; }
+
+.col-xs-push-0 {
+ left: auto; }
+
+.col-xs-push-1 {
+ left: 8.33333%; }
+
+.col-xs-push-2 {
+ left: 16.66667%; }
+
+.col-xs-push-3 {
+ left: 25%; }
+
+.col-xs-push-4 {
+ left: 33.33333%; }
+
+.col-xs-push-5 {
+ left: 41.66667%; }
+
+.col-xs-push-6 {
+ left: 50%; }
+
+.col-xs-push-7 {
+ left: 58.33333%; }
+
+.col-xs-push-8 {
+ left: 66.66667%; }
+
+.col-xs-push-9 {
+ left: 75%; }
+
+.col-xs-push-10 {
+ left: 83.33333%; }
+
+.col-xs-push-11 {
+ left: 91.66667%; }
+
+.col-xs-push-12 {
+ left: 100%; }
+
+.col-xs-offset-0 {
+ margin-left: 0%; }
+
+.col-xs-offset-1 {
+ margin-left: 8.33333%; }
+
+.col-xs-offset-2 {
+ margin-left: 16.66667%; }
+
+.col-xs-offset-3 {
+ margin-left: 25%; }
+
+.col-xs-offset-4 {
+ margin-left: 33.33333%; }
+
+.col-xs-offset-5 {
+ margin-left: 41.66667%; }
+
+.col-xs-offset-6 {
+ margin-left: 50%; }
+
+.col-xs-offset-7 {
+ margin-left: 58.33333%; }
+
+.col-xs-offset-8 {
+ margin-left: 66.66667%; }
+
+.col-xs-offset-9 {
+ margin-left: 75%; }
+
+.col-xs-offset-10 {
+ margin-left: 83.33333%; }
+
+.col-xs-offset-11 {
+ margin-left: 91.66667%; }
+
+.col-xs-offset-12 {
+ margin-left: 100%; }
+
+@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-1 {
+ width: 8.33333%; }
+
+ .col-sm-2 {
+ width: 16.66667%; }
+
+ .col-sm-3 {
+ width: 25%; }
+
+ .col-sm-4 {
+ width: 33.33333%; }
+
+ .col-sm-5 {
+ width: 41.66667%; }
+
+ .col-sm-6 {
+ width: 50%; }
+
+ .col-sm-7 {
+ width: 58.33333%; }
+
+ .col-sm-8 {
+ width: 66.66667%; }
+
+ .col-sm-9 {
+ width: 75%; }
+
+ .col-sm-10 {
+ width: 83.33333%; }
+
+ .col-sm-11 {
+ width: 91.66667%; }
+
+ .col-sm-12 {
+ width: 100%; }
+
+ .col-sm-pull-0 {
+ right: auto; }
+
+ .col-sm-pull-1 {
+ right: 8.33333%; }
+
+ .col-sm-pull-2 {
+ right: 16.66667%; }
+
+ .col-sm-pull-3 {
+ right: 25%; }
+
+ .col-sm-pull-4 {
+ right: 33.33333%; }
+
+ .col-sm-pull-5 {
+ right: 41.66667%; }
+
+ .col-sm-pull-6 {
+ right: 50%; }
+
+ .col-sm-pull-7 {
+ right: 58.33333%; }
+
+ .col-sm-pull-8 {
+ right: 66.66667%; }
+
+ .col-sm-pull-9 {
+ right: 75%; }
+
+ .col-sm-pull-10 {
+ right: 83.33333%; }
+
+ .col-sm-pull-11 {
+ right: 91.66667%; }
+
+ .col-sm-pull-12 {
+ right: 100%; }
+
+ .col-sm-push-0 {
+ left: auto; }
+
+ .col-sm-push-1 {
+ left: 8.33333%; }
+
+ .col-sm-push-2 {
+ left: 16.66667%; }
+
+ .col-sm-push-3 {
+ left: 25%; }
+
+ .col-sm-push-4 {
+ left: 33.33333%; }
+
+ .col-sm-push-5 {
+ left: 41.66667%; }
+
+ .col-sm-push-6 {
+ left: 50%; }
+
+ .col-sm-push-7 {
+ left: 58.33333%; }
+
+ .col-sm-push-8 {
+ left: 66.66667%; }
+
+ .col-sm-push-9 {
+ left: 75%; }
+
+ .col-sm-push-10 {
+ left: 83.33333%; }
+
+ .col-sm-push-11 {
+ left: 91.66667%; }
+
+ .col-sm-push-12 {
+ left: 100%; }
+
+ .col-sm-offset-0 {
+ margin-left: 0%; }
+
+ .col-sm-offset-1 {
+ margin-left: 8.33333%; }
+
+ .col-sm-offset-2 {
+ margin-left: 16.66667%; }
+
+ .col-sm-offset-3 {
+ margin-left: 25%; }
+
+ .col-sm-offset-4 {
+ margin-left: 33.33333%; }
+
+ .col-sm-offset-5 {
+ margin-left: 41.66667%; }
+
+ .col-sm-offset-6 {
+ margin-left: 50%; }
+
+ .col-sm-offset-7 {
+ margin-left: 58.33333%; }
+
+ .col-sm-offset-8 {
+ margin-left: 66.66667%; }
+
+ .col-sm-offset-9 {
+ margin-left: 75%; }
+
+ .col-sm-offset-10 {
+ margin-left: 83.33333%; }
+
+ .col-sm-offset-11 {
+ margin-left: 91.66667%; }
+
+ .col-sm-offset-12 {
+ margin-left: 100%; } }
+@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-1 {
+ width: 8.33333%; }
+
+ .col-md-2 {
+ width: 16.66667%; }
+
+ .col-md-3 {
+ width: 25%; }
+
+ .col-md-4 {
+ width: 33.33333%; }
+
+ .col-md-5 {
+ width: 41.66667%; }
+
+ .col-md-6 {
+ width: 50%; }
+
+ .col-md-7 {
+ width: 58.33333%; }
+
+ .col-md-8 {
+ width: 66.66667%; }
+
+ .col-md-9 {
+ width: 75%; }
+
+ .col-md-10 {
+ width: 83.33333%; }
+
+ .col-md-11 {
+ width: 91.66667%; }
+
+ .col-md-12 {
+ width: 100%; }
+
+ .col-md-pull-0 {
+ right: auto; }
+
+ .col-md-pull-1 {
+ right: 8.33333%; }
+
+ .col-md-pull-2 {
+ right: 16.66667%; }
+
+ .col-md-pull-3 {
+ right: 25%; }
+
+ .col-md-pull-4 {
+ right: 33.33333%; }
+
+ .col-md-pull-5 {
+ right: 41.66667%; }
+
+ .col-md-pull-6 {
+ right: 50%; }
+
+ .col-md-pull-7 {
+ right: 58.33333%; }
+
+ .col-md-pull-8 {
+ right: 66.66667%; }
+
+ .col-md-pull-9 {
+ right: 75%; }
+
+ .col-md-pull-10 {
+ right: 83.33333%; }
+
+ .col-md-pull-11 {
+ right: 91.66667%; }
+
+ .col-md-pull-12 {
+ right: 100%; }
+
+ .col-md-push-0 {
+ left: auto; }
+
+ .col-md-push-1 {
+ left: 8.33333%; }
+
+ .col-md-push-2 {
+ left: 16.66667%; }
+
+ .col-md-push-3 {
+ left: 25%; }
+
+ .col-md-push-4 {
+ left: 33.33333%; }
+
+ .col-md-push-5 {
+ left: 41.66667%; }
+
+ .col-md-push-6 {
+ left: 50%; }
+
+ .col-md-push-7 {
+ left: 58.33333%; }
+
+ .col-md-push-8 {
+ left: 66.66667%; }
+
+ .col-md-push-9 {
+ left: 75%; }
+
+ .col-md-push-10 {
+ left: 83.33333%; }
+
+ .col-md-push-11 {
+ left: 91.66667%; }
+
+ .col-md-push-12 {
+ left: 100%; }
+
+ .col-md-offset-0 {
+ margin-left: 0%; }
+
+ .col-md-offset-1 {
+ margin-left: 8.33333%; }
+
+ .col-md-offset-2 {
+ margin-left: 16.66667%; }
+
+ .col-md-offset-3 {
+ margin-left: 25%; }
+
+ .col-md-offset-4 {
+ margin-left: 33.33333%; }
+
+ .col-md-offset-5 {
+ margin-left: 41.66667%; }
+
+ .col-md-offset-6 {
+ margin-left: 50%; }
+
+ .col-md-offset-7 {
+ margin-left: 58.33333%; }
+
+ .col-md-offset-8 {
+ margin-left: 66.66667%; }
+
+ .col-md-offset-9 {
+ margin-left: 75%; }
+
+ .col-md-offset-10 {
+ margin-left: 83.33333%; }
+
+ .col-md-offset-11 {
+ margin-left: 91.66667%; }
+
+ .col-md-offset-12 {
+ margin-left: 100%; } }
+@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-1 {
+ width: 8.33333%; }
+
+ .col-lg-2 {
+ width: 16.66667%; }
+
+ .col-lg-3 {
+ width: 25%; }
+
+ .col-lg-4 {
+ width: 33.33333%; }
+
+ .col-lg-5 {
+ width: 41.66667%; }
+
+ .col-lg-6 {
+ width: 50%; }
+
+ .col-lg-7 {
+ width: 58.33333%; }
+
+ .col-lg-8 {
+ width: 66.66667%; }
+
+ .col-lg-9 {
+ width: 75%; }
+
+ .col-lg-10 {
+ width: 83.33333%; }
+
+ .col-lg-11 {
+ width: 91.66667%; }
+
+ .col-lg-12 {
+ width: 100%; }
+
+ .col-lg-pull-0 {
+ right: auto; }
+
+ .col-lg-pull-1 {
+ right: 8.33333%; }
+
+ .col-lg-pull-2 {
+ right: 16.66667%; }
+
+ .col-lg-pull-3 {
+ right: 25%; }
+
+ .col-lg-pull-4 {
+ right: 33.33333%; }
+
+ .col-lg-pull-5 {
+ right: 41.66667%; }
+
+ .col-lg-pull-6 {
+ right: 50%; }
+
+ .col-lg-pull-7 {
+ right: 58.33333%; }
+
+ .col-lg-pull-8 {
+ right: 66.66667%; }
+
+ .col-lg-pull-9 {
+ right: 75%; }
+
+ .col-lg-pull-10 {
+ right: 83.33333%; }
+
+ .col-lg-pull-11 {
+ right: 91.66667%; }
+
+ .col-lg-pull-12 {
+ right: 100%; }
+
+ .col-lg-push-0 {
+ left: auto; }
+
+ .col-lg-push-1 {
+ left: 8.33333%; }
+
+ .col-lg-push-2 {
+ left: 16.66667%; }
+
+ .col-lg-push-3 {
+ left: 25%; }
+
+ .col-lg-push-4 {
+ left: 33.33333%; }
+
+ .col-lg-push-5 {
+ left: 41.66667%; }
+
+ .col-lg-push-6 {
+ left: 50%; }
+
+ .col-lg-push-7 {
+ left: 58.33333%; }
+
+ .col-lg-push-8 {
+ left: 66.66667%; }
+
+ .col-lg-push-9 {
+ left: 75%; }
+
+ .col-lg-push-10 {
+ left: 83.33333%; }
+
+ .col-lg-push-11 {
+ left: 91.66667%; }
+
+ .col-lg-push-12 {
+ left: 100%; }
+
+ .col-lg-offset-0 {
+ margin-left: 0%; }
+
+ .col-lg-offset-1 {
+ margin-left: 8.33333%; }
+
+ .col-lg-offset-2 {
+ margin-left: 16.66667%; }
+
+ .col-lg-offset-3 {
+ margin-left: 25%; }
+
+ .col-lg-offset-4 {
+ margin-left: 33.33333%; }
+
+ .col-lg-offset-5 {
+ margin-left: 41.66667%; }
+
+ .col-lg-offset-6 {
+ margin-left: 50%; }
+
+ .col-lg-offset-7 {
+ margin-left: 58.33333%; }
+
+ .col-lg-offset-8 {
+ margin-left: 66.66667%; }
+
+ .col-lg-offset-9 {
+ margin-left: 75%; }
+
+ .col-lg-offset-10 {
+ margin-left: 83.33333%; }
+
+ .col-lg-offset-11 {
+ margin-left: 91.66667%; }
+
+ .col-lg-offset-12 {
+ margin-left: 100%; } }
+table {
+ background-color: transparent; }
+
+caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777777;
+ text-align: left; }
+
+th {
+ text-align: left; }
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 24px; }
+ .table > thead > tr > th,
+ .table > thead > tr > td,
+ .table > tbody > tr > th,
+ .table > tbody > tr > td,
+ .table > tfoot > tr > th,
+ .table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.5;
+ 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 > caption + thead > tr:first-child > td,
+ .table > colgroup + thead > tr:first-child > th,
+ .table > colgroup + thead > tr:first-child > td,
+ .table > thead:first-child > tr:first-child > th,
+ .table > thead:first-child > tr:first-child > td {
+ border-top: 0; }
+ .table > tbody + tbody {
+ border-top: 2px solid #ddd; }
+ .table .table {
+ background-color: #fff; }
+
+.table-condensed > thead > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > th,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > th,
+.table-condensed > tfoot > tr > td {
+ padding: 5px; }
+
+.table-bordered {
+ border: 1px solid #ddd; }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td,
+ .table-bordered > tbody > tr > th,
+ .table-bordered > tbody > tr > td,
+ .table-bordered > tfoot > tr > th,
+ .table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd; }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td {
+ border-bottom-width: 2px; }
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9; }
+
+.table-hover > tbody > tr:hover {
+ background-color: #f5f5f5; }
+
+table col[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-column; }
+
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-cell; }
+
+.table > thead > tr > td.active,
+.table > thead > tr > th.active, .table > thead > tr.active > td, .table > thead > tr.active > th,
+.table > tbody > tr > td.active,
+.table > tbody > tr > th.active,
+.table > tbody > tr.active > td,
+.table > tbody > tr.active > th,
+.table > tfoot > tr > td.active,
+.table > tfoot > tr > th.active,
+.table > tfoot > tr.active > td,
+.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 > thead > tr > th.success, .table > thead > tr.success > td, .table > thead > tr.success > th,
+.table > tbody > tr > td.success,
+.table > tbody > tr > th.success,
+.table > tbody > tr.success > td,
+.table > tbody > tr.success > th,
+.table > tfoot > tr > td.success,
+.table > tfoot > tr > th.success,
+.table > tfoot > tr.success > td,
+.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 > thead > tr > th.info, .table > thead > tr.info > td, .table > thead > tr.info > th,
+.table > tbody > tr > td.info,
+.table > tbody > tr > th.info,
+.table > tbody > tr.info > td,
+.table > tbody > tr.info > th,
+.table > tfoot > tr > td.info,
+.table > tfoot > tr > th.info,
+.table > tfoot > tr.info > td,
+.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 > thead > tr > th.warning, .table > thead > tr.warning > td, .table > thead > tr.warning > th,
+.table > tbody > tr > td.warning,
+.table > tbody > tr > th.warning,
+.table > tbody > tr.warning > td,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr > td.warning,
+.table > tfoot > tr > th.warning,
+.table > tfoot > tr.warning > td,
+.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 > thead > tr > th.danger, .table > thead > tr.danger > td, .table > thead > tr.danger > th,
+.table > tbody > tr > td.danger,
+.table > tbody > tr > th.danger,
+.table > tbody > tr.danger > td,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr > td.danger,
+.table > tfoot > tr > th.danger,
+.table > tfoot > tr.danger > td,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede; }
+
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc; }
+
+.table-responsive {
+ overflow-x: auto;
+ min-height: 0.01%; }
+ @media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 18px;
+ 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 > thead > tr > td,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > th,
+ .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 > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th: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 > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th: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 > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0; } }
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0; }
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 24px;
+ font-size: 24px;
+ line-height: inherit;
+ color: #333333;
+ 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: 16px;
+ line-height: 1.5;
+ color: #555555; }
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: 38px;
+ padding: 6px 12px;
+ font-size: 16px;
+ line-height: 1.5;
+ color: #555555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
+ .form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
+ .form-control::-moz-placeholder {
+ color: #c8cbcf;
+ opacity: 1; }
+ .form-control:-ms-input-placeholder {
+ color: #c8cbcf; }
+ .form-control::-webkit-input-placeholder {
+ color: #c8cbcf; }
+ .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
+ cursor: not-allowed;
+ background-color: #eeeeee;
+ 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: 38px; }
+ input[type="date"].input-sm, .input-group-sm > input[type="date"].form-control,
+ .input-group-sm > input[type="date"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="date"].btn, .input-group-sm input[type="date"],
+ input[type="time"].input-sm,
+ .input-group-sm > input[type="time"].form-control,
+ .input-group-sm > input[type="time"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="time"].btn, .input-group-sm
+ input[type="time"],
+ input[type="datetime-local"].input-sm,
+ .input-group-sm > input[type="datetime-local"].form-control,
+ .input-group-sm > input[type="datetime-local"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="datetime-local"].btn, .input-group-sm
+ input[type="datetime-local"],
+ input[type="month"].input-sm,
+ .input-group-sm > input[type="month"].form-control,
+ .input-group-sm > input[type="month"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="month"].btn, .input-group-sm
+ input[type="month"] {
+ line-height: 33px; }
+ input[type="date"].input-lg, .input-group-lg > input[type="date"].form-control,
+ .input-group-lg > input[type="date"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="date"].btn, .input-group-lg input[type="date"],
+ input[type="time"].input-lg,
+ .input-group-lg > input[type="time"].form-control,
+ .input-group-lg > input[type="time"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="time"].btn, .input-group-lg
+ input[type="time"],
+ input[type="datetime-local"].input-lg,
+ .input-group-lg > input[type="datetime-local"].form-control,
+ .input-group-lg > input[type="datetime-local"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="datetime-local"].btn, .input-group-lg
+ input[type="datetime-local"],
+ input[type="month"].input-lg,
+ .input-group-lg > input[type="month"].form-control,
+ .input-group-lg > input[type="month"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="month"].btn, .input-group-lg
+ input[type="month"] {
+ line-height: 49px; } }
+.form-group {
+ margin-bottom: 15px; }
+
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px; }
+ .radio label,
+ .checkbox label {
+ min-height: 24px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer; }
+
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-left: -20px;
+ margin-top: 4px \9; }
+
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px; }
+
+.radio-inline,
+.checkbox-inline {
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer; }
+
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px; }
+
+input[type="radio"][disabled], input[type="radio"].disabled, fieldset[disabled] input[type="radio"],
+input[type="checkbox"][disabled],
+input[type="checkbox"].disabled, fieldset[disabled]
+input[type="checkbox"] {
+ cursor: not-allowed; }
+
+.radio-inline.disabled, fieldset[disabled] .radio-inline,
+.checkbox-inline.disabled, fieldset[disabled]
+.checkbox-inline {
+ cursor: not-allowed; }
+
+.radio.disabled label, fieldset[disabled] .radio label,
+.checkbox.disabled 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, .input-group-lg > .form-control-static.form-control,
+ .input-group-lg > .form-control-static.input-group-addon,
+ .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,
+ .input-group-sm > .form-control-static.input-group-addon,
+ .input-group-sm > .input-group-btn > .form-control-static.btn {
+ padding-left: 0;
+ padding-right: 0; }
+
+.input-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 33px;
+ padding: 5px 10px;
+ font-size: 14px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+select.input-sm, .input-group-sm > select.form-control,
+.input-group-sm > select.input-group-addon,
+.input-group-sm > .input-group-btn > select.btn {
+ height: 33px;
+ line-height: 33px; }
+
+textarea.input-sm, .input-group-sm > textarea.form-control,
+.input-group-sm > textarea.input-group-addon,
+.input-group-sm > .input-group-btn > textarea.btn,
+select[multiple].input-sm,
+.input-group-sm > select[multiple].form-control,
+.input-group-sm > select[multiple].input-group-addon,
+.input-group-sm > .input-group-btn > select[multiple].btn {
+ height: auto; }
+
+.form-group-sm .form-control {
+ height: 33px;
+ padding: 5px 10px;
+ font-size: 14px;
+ line-height: 1.5;
+ border-radius: 3px; }
+.form-group-sm select.form-control {
+ height: 33px;
+ line-height: 33px; }
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+ height: auto; }
+.form-group-sm .form-control-static {
+ height: 33px;
+ padding: 5px 10px;
+ font-size: 14px;
+ line-height: 1.5; }
+
+.input-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 49px;
+ padding: 10px 16px;
+ font-size: 20px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+select.input-lg, .input-group-lg > select.form-control,
+.input-group-lg > select.input-group-addon,
+.input-group-lg > .input-group-btn > select.btn {
+ height: 49px;
+ line-height: 49px; }
+
+textarea.input-lg, .input-group-lg > textarea.form-control,
+.input-group-lg > textarea.input-group-addon,
+.input-group-lg > .input-group-btn > textarea.btn,
+select[multiple].input-lg,
+.input-group-lg > select[multiple].form-control,
+.input-group-lg > select[multiple].input-group-addon,
+.input-group-lg > .input-group-btn > select[multiple].btn {
+ height: auto; }
+
+.form-group-lg .form-control {
+ height: 49px;
+ padding: 10px 16px;
+ font-size: 20px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+.form-group-lg select.form-control {
+ height: 49px;
+ line-height: 49px; }
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto; }
+.form-group-lg .form-control-static {
+ height: 49px;
+ padding: 10px 16px;
+ font-size: 20px;
+ line-height: 1.33333; }
+
+.has-feedback {
+ position: relative; }
+ .has-feedback .form-control {
+ padding-right: 47.5px; }
+
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 38px;
+ height: 38px;
+ line-height: 38px;
+ text-align: center;
+ pointer-events: none; }
+
+.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,
+.input-group-lg > .input-group-addon + .form-control-feedback,
+.input-group-lg > .input-group-btn > .btn + .form-control-feedback {
+ width: 49px;
+ height: 49px;
+ line-height: 49px; }
+
+.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,
+.input-group-sm > .input-group-addon + .form-control-feedback,
+.input-group-sm > .input-group-btn > .btn + .form-control-feedback {
+ width: 33px;
+ height: 33px;
+ line-height: 33px; }
+
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label {
+ color: #3c763d; }
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; }
+.has-success .input-group-addon {
+ color: #3c763d;
+ border-color: #3c763d;
+ background-color: #dff0d8; }
+.has-success .form-control-feedback {
+ color: #3c763d; }
+
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label {
+ color: #8a6d3b; }
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; }
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ border-color: #8a6d3b;
+ background-color: #fcf8e3; }
+.has-warning .form-control-feedback {
+ color: #8a6d3b; }
+
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label {
+ color: #a94442; }
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; }
+.has-error .input-group-addon {
+ color: #a94442;
+ border-color: #a94442;
+ background-color: #f2dede; }
+.has-error .form-control-feedback {
+ color: #a94442; }
+
+.has-feedback label ~ .form-control-feedback {
+ top: 29px; }
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0; }
+
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373; }
+
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle; }
+ .form-inline .form-control-static {
+ display: inline-block; }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle; }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto; }
+ .form-inline .input-group > .form-control {
+ width: 100%; }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0; }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0; }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0; } }
+
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px; }
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 31px; }
+.form-horizontal .form-group {
+ margin-left: -15px;
+ margin-right: -15px; }
+ .form-horizontal .form-group:before, .form-horizontal .form-group:after {
+ content: " ";
+ display: table; }
+ .form-horizontal .form-group:after {
+ clear: both; }
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: right;
+ margin-bottom: 0;
+ padding-top: 7px; } }
+.form-horizontal .has-feedback .form-control-feedback {
+ right: 15px; }
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 14.33333px; } }
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px; } }
+
+.btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: normal;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 16px;
+ line-height: 1.5;
+ border-radius: 4px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+ .btn:focus, .btn.focus, .btn:active:focus, .btn:active.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: #000;
+ text-decoration: none; }
+ .btn:active, .btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
+ .btn.disabled, .btn[disabled], fieldset[disabled] .btn {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+
+.btn-default {
+ color: #000;
+ background-color: #f3f3f3;
+ border-color: #f3f3f3; }
+ .btn-default:hover, .btn-default:focus, .btn-default.focus, .btn-default:active, .btn-default.active, .open > .btn-default.dropdown-toggle {
+ color: #000;
+ background-color: #d9d9d9;
+ border-color: #d4d4d4; }
+ .btn-default:active, .btn-default.active, .open > .btn-default.dropdown-toggle {
+ background-image: none; }
+ .btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled].active, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active {
+ background-color: #f3f3f3;
+ border-color: #f3f3f3; }
+ .btn-default .badge {
+ color: #f3f3f3;
+ background-color: #000; }
+
+.btn-primary {
+ color: #fff;
+ background-color: #0675A0;
+ border-color: #0675A0; }
+ .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #07A6CB;
+ border-color: #93CFE0; }
+ .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle {
+ background-image: none; }
+ .btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active {
+ background-color: #0675A0;
+ border-color: #0675A0; }
+ .btn-primary .badge {
+ color: #0675A0;
+ 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 > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439; }
+ .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle {
+ background-image: none; }
+ .btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled].active, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success: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: #26a6d1;
+ border-color: #26a6d1; }
+ .btn-info:hover, .btn-info:focus, .btn-info.focus, .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle {
+ color: #fff;
+ background-color: #1e84a6;
+ border-color: #1d7d9d; }
+ .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle {
+ background-image: none; }
+ .btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled].active, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info.active {
+ background-color: #26a6d1;
+ border-color: #26a6d1; }
+ .btn-info .badge {
+ color: #26a6d1;
+ 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 > .btn-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512; }
+ .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle {
+ background-image: none; }
+ .btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning: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 > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925; }
+ .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle {
+ background-image: none; }
+ .btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a; }
+ .btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff; }
+
+.btn-link {
+ color: #0675A0;
+ font-weight: normal;
+ border-radius: 0; }
+ .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+ .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
+ border-color: transparent; }
+ .btn-link:hover, .btn-link:focus {
+ color: #053767;
+ text-decoration: underline;
+ background-color: transparent; }
+ .btn-link[disabled]:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus {
+ color: #777777;
+ text-decoration: none; }
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 20px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 14px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+.btn-xs, .btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 14px;
+ 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 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.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-property: height, visibility;
+ transition-property: height, visibility;
+ -webkit-transition-duration: 0.35s;
+ transition-duration: 0.35s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease; }
+
+.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;
+ list-style: none;
+ font-size: 16px;
+ text-align: left;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box; }
+ .dropdown-menu.pull-right {
+ right: 0;
+ left: auto; }
+ .dropdown-menu .divider {
+ height: 1px;
+ margin: 11px 0;
+ overflow: hidden;
+ background-color: #e5e5e5; }
+ .dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.5;
+ color: #333333;
+ white-space: nowrap; }
+
+.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #262626;
+ background-color: #f5f5f5; }
+
+.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #0675A0; }
+
+.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ color: #777777; }
+.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ cursor: not-allowed; }
+
+.open > .dropdown-menu {
+ display: block; }
+.open > a {
+ outline: 0; }
+
+.dropdown-menu-right {
+ left: auto;
+ right: 0; }
+
+.dropdown-menu-left {
+ left: 0;
+ right: auto; }
+
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 14px;
+ line-height: 1.5;
+ color: #777777;
+ white-space: nowrap; }
+
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990; }
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto; }
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px solid;
+ content: ""; }
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px; }
+
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto; }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto; } }
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle; }
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ position: relative;
+ float: left; }
+ .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+ .btn-group-vertical > .btn:hover,
+ .btn-group-vertical > .btn:focus,
+ .btn-group-vertical > .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:before, .btn-toolbar:after {
+ content: " ";
+ display: table; }
+ .btn-toolbar:after {
+ clear: both; }
+ .btn-toolbar .btn-group,
+ .btn-toolbar .input-group {
+ float: left; }
+ .btn-toolbar > .btn,
+ .btn-toolbar > .btn-group,
+ .btn-toolbar > .input-group {
+ margin-left: 5px; }
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0; }
+
+.btn-group > .btn:first-child {
+ margin-left: 0; }
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group > .btn-group {
+ float: left; }
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0; }
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0; }
+
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px; }
+
+.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px; }
+
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
+ .btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+
+.btn .caret {
+ margin-left: 0; }
+
+.btn-lg .caret, .btn-group-lg > .btn .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0; }
+
+.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .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:before, .btn-group-vertical > .btn-group:after {
+ content: " ";
+ display: table; }
+.btn-group-vertical > .btn-group:after {
+ clear: both; }
+.btn-group-vertical > .btn-group > .btn {
+ float: none; }
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0; }
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0; }
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 4px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0; }
+
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate; }
+ .btn-group-justified > .btn,
+ .btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%; }
+ .btn-group-justified > .btn-group .btn {
+ width: 100%; }
+ .btn-group-justified > .btn-group .dropdown-menu {
+ left: auto; }
+
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[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-left: 0;
+ padding-right: 0; }
+ .input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0; }
+
+.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: 16px;
+ font-weight: normal;
+ line-height: 1;
+ color: #555555;
+ text-align: center;
+ background-color: #eeeeee;
+ border: 1px solid #ccc;
+ border-radius: 4px; }
+ .input-group-addon.input-sm,
+ .input-group-sm > .input-group-addon,
+ .input-group-sm > .input-group-btn > .input-group-addon.btn {
+ padding: 5px 10px;
+ font-size: 14px;
+ border-radius: 3px; }
+ .input-group-addon.input-lg,
+ .input-group-lg > .input-group-addon,
+ .input-group-lg > .input-group-btn > .input-group-addon.btn {
+ padding: 10px 16px;
+ font-size: 20px;
+ border-radius: 6px; }
+ .input-group-addon input[type="radio"],
+ .input-group-addon input[type="checkbox"] {
+ margin-top: 0; }
+
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.input-group-addon:first-child {
+ border-right: 0; }
+
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+
+.input-group-addon:last-child {
+ border-left: 0; }
+
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap; }
+ .input-group-btn > .btn {
+ position: relative; }
+ .input-group-btn > .btn + .btn {
+ margin-left: -1px; }
+ .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {
+ z-index: 2; }
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group {
+ margin-right: -1px; }
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group {
+ margin-left: -1px; }
+
+.nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none; }
+ .nav:before, .nav:after {
+ content: " ";
+ display: table; }
+ .nav:after {
+ clear: both; }
+ .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: #eeeeee; }
+ .nav > li.disabled > a {
+ color: #777777; }
+ .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {
+ color: #777777;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed; }
+ .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
+ background-color: #eeeeee;
+ border-color: #0675A0; }
+ .nav .nav-divider {
+ height: 1px;
+ margin: 11px 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.5;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .nav-tabs > li > a:hover {
+ border-color: #eeeeee #eeeeee #ddd; }
+ .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
+ color: #555555;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default; }
+
+.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: #0675A0; }
+
+.nav-stacked > li {
+ float: none; }
+ .nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0; }
+
+.nav-justified, .nav-tabs.nav-justified {
+ width: 100%; }
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ float: none; }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px; }
+ .nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto; }
+ @media (min-width: 768px) {
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%; }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0; } }
+
+.nav-tabs-justified, .nav-tabs.nav-justified {
+ border-bottom: 0; }
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px; }
+ .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd; }
+ @media (min-width: 768px) {
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0; }
+ .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus,
+ .nav-tabs.nav-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-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 24px;
+ border: 1px solid transparent; }
+ .navbar:before, .navbar:after {
+ content: " ";
+ display: table; }
+ .navbar:after {
+ clear: both; }
+ @media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px; } }
+
+.navbar-header:before, .navbar-header:after {
+ content: " ";
+ display: table; }
+.navbar-header:after {
+ clear: both; }
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left; } }
+
+.navbar-collapse {
+ overflow-x: visible;
+ padding-right: 15px;
+ padding-left: 15px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch; }
+ .navbar-collapse:before, .navbar-collapse:after {
+ content: " ";
+ display: table; }
+ .navbar-collapse:after {
+ clear: both; }
+ .navbar-collapse.in {
+ overflow-y: auto; }
+ @media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none; }
+ .navbar-collapse.collapse {
+ display: block !important;
+ visibility: visible !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important; }
+ .navbar-collapse.in {
+ overflow-y: visible; }
+ .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0; } }
+
+.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 > .navbar-collapse,
+.container-fluid > .navbar-header,
+.container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px; }
+ @media (min-width: 768px) {
+ .container > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-header,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0; } }
+
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px; }
+ @media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0; } }
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030; }
+ @media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0; } }
+
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px; }
+
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0; }
+
+.navbar-brand {
+ float: left;
+ padding: 13px 15px;
+ font-size: 20px;
+ line-height: 24px;
+ height: 50px; }
+ .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;
+ margin-right: 15px;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px; }
+ .navbar-toggle:focus {
+ outline: 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: 6.5px -15px; }
+ .navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 24px; }
+ @media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none; }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px; }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 24px; }
+ .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: 13px;
+ padding-bottom: 13px; } }
+
+.navbar-form {
+ margin-left: -15px;
+ margin-right: -15px;
+ padding: 10px 15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 6px;
+ margin-bottom: 6px; }
+ @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;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none; } }
+
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.navbar-btn {
+ margin-top: 6px;
+ margin-bottom: 6px; }
+ .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {
+ margin-top: 8.5px;
+ margin-bottom: 8.5px; }
+ .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {
+ margin-top: 14px;
+ margin-bottom: 14px; }
+
+.navbar-text {
+ margin-top: 13px;
+ margin-bottom: 13px; }
+ @media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-left: 15px;
+ margin-right: 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 {
+ background-color: #e7e7e7;
+ color: #555; }
+ @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, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:hover, fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #ccc; }
+
+.navbar-inverse {
+ background-color: #222;
+ border-color: #090909; }
+ .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: #090909; }
+ .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 {
+ background-color: #090909;
+ color: #fff; }
+ @media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #090909; }
+ .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: #090909; }
+ .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, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:hover, fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444; }
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 24px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px; }
+ .breadcrumb > li {
+ display: inline-block; }
+ .breadcrumb > li + li:before {
+ content: /\00a0;
+ padding: 0 5px;
+ color: #ccc; }
+ .breadcrumb > .active {
+ color: #777777; }
+
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 24px 0;
+ border-radius: 4px; }
+ .pagination > li {
+ display: inline; }
+ .pagination > li > a,
+ .pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.5;
+ text-decoration: none;
+ color: #0675A0;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px; }
+ .pagination > li:first-child > a,
+ .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px; }
+ .pagination > li:last-child > a,
+ .pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px; }
+ .pagination > li > a:hover, .pagination > li > a:focus,
+ .pagination > li > span:hover,
+ .pagination > li > span:focus {
+ color: #053767;
+ background-color: #eeeeee;
+ border-color: #ddd; }
+ .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,
+ .pagination > .active > span,
+ .pagination > .active > span:hover,
+ .pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #0675A0;
+ border-color: #0675A0;
+ cursor: default; }
+ .pagination > .disabled > span,
+ .pagination > .disabled > span:hover,
+ .pagination > .disabled > span:focus,
+ .pagination > .disabled > a,
+ .pagination > .disabled > a:hover,
+ .pagination > .disabled > a:focus {
+ color: #777777;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed; }
+
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 20px; }
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 6px;
+ border-top-left-radius: 6px; }
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 14px; }
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+
+.pager {
+ padding-left: 0;
+ margin: 24px 0;
+ list-style: none;
+ text-align: center; }
+ .pager:before, .pager:after {
+ content: " ";
+ display: table; }
+ .pager:after {
+ clear: both; }
+ .pager li {
+ display: inline; }
+ .pager li > a,
+ .pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px; }
+ .pager li > a:hover,
+ .pager li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee; }
+ .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: #777777;
+ background-color: #fff;
+ cursor: not-allowed; }
+
+.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; }
+ .label:empty {
+ display: none; }
+ .btn .label {
+ position: relative;
+ top: -1px; }
+
+a.label:hover, a.label:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer; }
+
+.label-default {
+ background-color: #777777; }
+ .label-default[href]:hover, .label-default[href]:focus {
+ background-color: #5e5e5e; }
+
+.label-primary {
+ background-color: #0675A0; }
+ .label-primary[href]:hover, .label-primary[href]:focus {
+ background-color: #07A6CB; }
+
+.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: 14px;
+ font-weight: bold;
+ color: #fff;
+ line-height: 1;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #777777;
+ border-radius: 10px; }
+ .badge:empty {
+ display: none; }
+ .btn .badge {
+ position: relative;
+ top: -1px; }
+ .btn-xs .badge, .btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px; }
+ .list-group-item.active > .badge, .nav-pills > .active > a > .badge {
+ color: #0675A0;
+ 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; }
+
+a.badge:hover, a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer; }
+
+.jumbotron {
+ padding: 30px 15px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eeeeee; }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ color: inherit; }
+ .jumbotron p {
+ margin-bottom: 15px;
+ font-size: 24px;
+ 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-left: 60px;
+ padding-right: 60px; }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 72px; } }
+
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 24px;
+ line-height: 1.5;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: border 0.2s ease-in-out;
+ -o-transition: border 0.2s ease-in-out;
+ transition: border 0.2s ease-in-out; }
+ .thumbnail > img,
+ .thumbnail a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto; }
+ .thumbnail .caption {
+ padding: 9px;
+ color: #333333; }
+
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #0675A0; }
+
+.alert {
+ padding: 15px;
+ margin-bottom: 24px;
+ border: 1px solid transparent;
+ border-radius: 4px; }
+ .alert h4 {
+ margin-top: 0;
+ color: inherit; }
+ .alert .alert-link {
+ font-weight: bold; }
+ .alert > p,
+ .alert > ul {
+ margin-bottom: 0; }
+ .alert > p + p {
+ margin-top: 5px; }
+
+.alert-dismissable,
+.alert-dismissible {
+ padding-right: 35px; }
+ .alert-dismissable .close,
+ .alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit; }
+
+.alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #3c763d; }
+ .alert-success hr {
+ border-top-color: #c9e2b3; }
+ .alert-success .alert-link {
+ color: #2b542c; }
+
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #31708f; }
+ .alert-info hr {
+ border-top-color: #a6e1ec; }
+ .alert-info .alert-link {
+ color: #245269; }
+
+.alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ color: #8a6d3b; }
+ .alert-warning hr {
+ border-top-color: #f7e1b5; }
+ .alert-warning .alert-link {
+ color: #66512c; }
+
+.alert-danger {
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ color: #a94442; }
+ .alert-danger hr {
+ border-top-color: #e4b9c0; }
+ .alert-danger .alert-link {
+ color: #843534; }
+
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0; }
+ to {
+ background-position: 0 0; } }
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0; }
+ to {
+ background-position: 0 0; } }
+.progress {
+ overflow: hidden;
+ height: 24px;
+ margin-bottom: 24px;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }
+
+.progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: 14px;
+ line-height: 24px;
+ color: #fff;
+ text-align: center;
+ background-color: #0675A0;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ -o-transition: width 0.6s ease;
+ transition: width 0.6s ease; }
+
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ 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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.progress-bar-info {
+ background-color: #5bc0de; }
+ .progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.progress-bar-warning {
+ background-color: #f0ad4e; }
+ .progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.progress-bar-danger {
+ background-color: #d9534f; }
+ .progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.media {
+ margin-top: 15px; }
+ .media:first-child {
+ margin-top: 0; }
+
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden; }
+
+.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 {
+ margin-bottom: 20px;
+ padding-left: 0; }
+
+.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-right-radius: 4px;
+ border-top-left-radius: 4px; }
+ .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px; }
+
+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 {
+ text-decoration: none;
+ color: #555;
+ background-color: #f5f5f5; }
+
+.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {
+ background-color: #eeeeee;
+ color: #777777;
+ cursor: not-allowed; }
+ .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: #777777; }
+.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #0675A0;
+ border-color: #0675A0; }
+ .list-group-item.active .list-group-item-heading,
+ .list-group-item.active .list-group-item-heading > small,
+ .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,
+ .list-group-item.active:hover .list-group-item-heading > small,
+ .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,
+ .list-group-item.active:focus .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: #fcfcfd; }
+
+.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: 24px;
+ background-color: #fff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }
+
+.panel-body {
+ padding: 15px; }
+ .panel-body:before, .panel-body:after {
+ content: " ";
+ display: table; }
+ .panel-body:after {
+ clear: both; }
+
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px; }
+ .panel-heading > .dropdown .dropdown-toggle {
+ color: inherit; }
+
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 18px;
+ 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-right-radius: 3px;
+ border-top-left-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-left: 15px;
+ padding-right: 15px; }
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px; }
+ .panel > .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 > thead: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:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .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 th:first-child,
+ .panel > .table-responsive:first-child > .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 th:first-child {
+ border-top-left-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .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 th:last-child,
+ .panel > .table-responsive:first-child > .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 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:last-child > tfoot:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .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 th:first-child,
+ .panel > .table-responsive:last-child > .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 th:first-child {
+ border-bottom-left-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .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 th:last-child,
+ .panel > .table-responsive:last-child > .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 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-bordered > thead > tr > td:first-child,
+ .panel > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-bordered > tfoot > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr > td:last-child,
+ .panel > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-bordered > tfoot > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr:first-child > th,
+ .panel > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-bordered > tbody > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0; }
+ .panel > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-bordered > tfoot > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0; }
+.panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0; }
+
+.panel-group {
+ margin-bottom: 24px; }
+ .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: #333333;
+ 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: #333333; }
+ .panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ddd; }
+
+.panel-primary {
+ border-color: #0675A0; }
+ .panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #0675A0;
+ border-color: #0675A0; }
+ .panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #0675A0; }
+ .panel-primary > .panel-heading .badge {
+ color: #0675A0;
+ background-color: #fff; }
+ .panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #0675A0; }
+
+.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;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 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, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
+ .well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15); }
+
+.well-lg {
+ padding: 24px;
+ border-radius: 6px; }
+
+.well-sm {
+ padding: 9px;
+ border-radius: 3px; }
+
+.close {
+ float: right;
+ font-size: 24px;
+ font-weight: bold;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: 0.2;
+ filter: alpha(opacity=20); }
+ .close:hover, .close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50); }
+
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none; }
+
+.modal-open {
+ overflow: hidden; }
+
+.modal {
+ display: none;
+ overflow: hidden;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ -webkit-overflow-scrolling: touch;
+ outline: 0; }
+ .modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out; }
+ .modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -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;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: 0; }
+
+.modal-backdrop {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ background-color: #000; }
+ .modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0); }
+ .modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50); }
+
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+ min-height: 16.5px; }
+
+.modal-header .close {
+ margin-top: -2px; }
+
+.modal-title {
+ margin: 0;
+ line-height: 1.5; }
+
+.modal-body {
+ position: relative;
+ padding: 15px; }
+
+.modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5; }
+ .modal-footer:before, .modal-footer:after {
+ content: " ";
+ display: table; }
+ .modal-footer:after {
+ clear: both; }
+ .modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; }
+ .modal-footer .btn-group .btn + .btn {
+ margin-left: -1px; }
+ .modal-footer .btn-block + .btn-block {
+ margin-left: 0; }
+
+.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, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }
+
+ .modal-sm {
+ width: 300px; } }
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px; } }
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ visibility: visible;
+ font-family: "Montserrat", sans-serif;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.4;
+ opacity: 0;
+ filter: alpha(opacity=0); }
+ .tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90); }
+ .tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0; }
+ .tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px; }
+ .tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0; }
+ .tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px; }
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #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 {
+ bottom: 0;
+ right: 5px;
+ 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: "Montserrat", sans-serif;
+ font-size: 16px;
+ font-weight: normal;
+ line-height: 1.5;
+ text-align: left;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ white-space: normal; }
+ .popover.top {
+ margin-top: -10px; }
+ .popover.right {
+ margin-left: 10px; }
+ .popover.bottom {
+ margin-top: 10px; }
+ .popover.left {
+ margin-left: -10px; }
+
+.popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 16px;
+ 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 {
+ border-width: 10px;
+ content: ""; }
+
+.popover.top > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px; }
+ .popover.top > .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff; }
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999999;
+ border-right-color: rgba(0, 0, 0, 0.25); }
+ .popover.right > .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff; }
+.popover.bottom > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px; }
+ .popover.bottom > .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff; }
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999999;
+ border-left-color: rgba(0, 0, 0, 0.25); }
+ .popover.left > .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px; }
+
+.carousel {
+ position: relative; }
+
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%; }
+ .carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ -o-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left; }
+ .carousel-inner > .item > img,
+ .carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ line-height: 1; }
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
+ -moz-transition: -moz-transform 0.6s ease-in-out;
+ -o-transition: -o-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000;
+ -moz-perspective: 1000;
+ perspective: 1000; }
+ .carousel-inner > .item.next, .carousel-inner > .item.active.right {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ left: 0; }
+ .carousel-inner > .item.prev, .carousel-inner > .item.active.left {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ left: 0; }
+ .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ left: 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;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
+ .carousel-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }
+ .carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }
+ .carousel-control:hover, .carousel-control:focus {
+ outline: 0;
+ color: #fff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90); }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block; }
+ .carousel-control .icon-prev,
+ .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ 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;
+ line-height: 1;
+ font-family: serif; }
+ .carousel-control .icon-prev:before {
+ content: '\2039'; }
+ .carousel-control .icon-next:before {
+ content: '\203a'; }
+
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center; }
+ .carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #fff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: transparent; }
+ .carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #fff; }
+
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
+ .carousel-caption .btn {
+ text-shadow: none; }
+
+@media screen and (min-width: 768px) {
+ .carousel-control .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 {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px; }
+
+ .carousel-indicators {
+ bottom: 20px; } }
+.clearfix:before, .clearfix:after {
+ content: " ";
+ display: table; }
+.clearfix:after {
+ clear: both; }
+
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto; }
+
+.pull-right {
+ float: right !important; }
+
+.pull-left {
+ float: left !important; }
+
+.hide {
+ display: none !important; }
+
+.show {
+ display: block !important; }
+
+.invisible {
+ visibility: hidden; }
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0; }
+
+.hidden {
+ display: none !important;
+ visibility: hidden !important; }
+
+.affix {
+ position: fixed; }
+
+@-ms-viewport {
+ width: device-width; }
+.visible-xs {
+ display: none !important; }
+
+.visible-sm {
+ display: none !important; }
+
+.visible-md {
+ display: none !important; }
+
+.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 */
diff --git a/css/bootstrap.css.map b/css/bootstrap.css.map
new file mode 100644
index 00000000..34ef401d
--- /dev/null
+++ b/css/bootstrap.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": ";AAQA,IAAK;EACH,WAAW,EAAE,UAAU;EACvB,oBAAoB,EAAE,IAAI;EAC1B,wBAAwB,EAAE,IAAI;;AAOhC,IAAK;EACH,MAAM,EAAE,CAAC;;AAaX;;;;;;;;;;;;OAYQ;EACN,OAAO,EAAE,KAAK;;AAQhB;;;KAGM;EACJ,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,QAAQ;;AAQ1B,qBAAsB;EACpB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,CAAC;;AAQX;QACS;EACP,OAAO,EAAE,IAAI;;AAUf,CAAE;EACA,gBAAgB,EAAE,WAAW;;AAO/B;OACQ;EACN,OAAO,EAAE,CAAC;;AAUZ,WAAY;EACV,aAAa,EAAE,UAAU;;AAO3B;MACO;EACL,WAAW,EAAE,IAAI;;AAOnB,GAAI;EACF,UAAU,EAAE,MAAM;;AAQpB,EAAG;EACD,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,QAAQ;;AAOlB,IAAK;EACH,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;AAOb,KAAM;EACJ,SAAS,EAAE,GAAG;;AAOhB;GACI;EACF,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,QAAQ;;AAG1B,GAAI;EACF,GAAG,EAAE,MAAM;;AAGb,GAAI;EACF,MAAM,EAAE,OAAO;;AAUjB,GAAI;EACF,MAAM,EAAE,CAAC;;AAOX,cAAe;EACb,QAAQ,EAAE,MAAM;;AAUlB,MAAO;EACL,MAAM,EAAE,QAAQ;;AAOlB,EAAG;EACD,eAAe,EAAE,WAAW;EAC5B,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;;AAOX,GAAI;EACF,QAAQ,EAAE,IAAI;;AAOhB;;;IAGK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAE,GAAG;;AAkBhB;;;;QAIS;EACP,KAAK,EAAE,OAAO;EACd,IAAI,EAAE,OAAO;EACb,MAAM,EAAE,CAAC;;AAOX,MAAO;EACL,QAAQ,EAAE,OAAO;;AAUnB;MACO;EACL,cAAc,EAAE,IAAI;;AAWtB;;;oBAGqB;EACnB,kBAAkB,EAAE,MAAM;EAC1B,MAAM,EAAE,OAAO;;AAOjB;oBACqB;EACnB,MAAM,EAAE,OAAO;;AAOjB;uBACwB;EACtB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;AAQZ,KAAM;EACJ,WAAW,EAAE,MAAM;;AAWrB;mBACoB;EAClB,UAAU,EAAE,UAAU;EACtB,OAAO,EAAE,CAAC;;AASZ;+CACgD;EAC9C,MAAM,EAAE,IAAI;;AASd,oBAAqB;EACnB,kBAAkB,EAAE,SAAS;EAC7B,eAAe,EAAE,WAAW;EAC5B,kBAAkB,EAAE,WAAW;EAC/B,UAAU,EAAE,WAAW;;AASzB;+CACgD;EAC9C,kBAAkB,EAAE,IAAI;;AAO1B,QAAS;EACP,MAAM,EAAE,iBAAiB;EACzB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,qBAAqB;;AAQhC,MAAO;EACL,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;AAOZ,QAAS;EACP,QAAQ,EAAE,IAAI;;AAQhB,QAAS;EACP,WAAW,EAAE,IAAI;;AAUnB,KAAM;EACJ,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC;;AAGnB;EACG;EACD,OAAO,EAAE,CAAC;;;AClaZ,YAAa;EACT;;SAEQ;IACJ,UAAU,EAAE,sBAAsB;IAClC,KAAK,EAAE,eAAe;IACtB,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,eAAe;;EAGhC;WACU;IACN,eAAe,EAAE,SAAS;;EAG9B,aAAc;IACV,OAAO,EAAE,mBAAmB;;EAGhC,iBAAkB;IACd,OAAO,EAAE,oBAAoB;;EAKjC;8BAC6B;IACzB,OAAO,EAAE,EAAE;;EAGf;YACW;IACP,MAAM,EAAE,cAAc;IACtB,iBAAiB,EAAE,KAAK;;EAG5B,KAAM;IACF,OAAO,EAAE,kBAAkB;;EAG/B;KACI;IACA,iBAAiB,EAAE,KAAK;;EAG5B,GAAI;IACA,SAAS,EAAE,eAAe;;EAG9B;;IAEG;IACC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;;EAGb;IACG;IACC,gBAAgB,EAAE,KAAK;;EAO3B,MAAO;IACH,UAAU,EAAE,eAAe;;EAI/B,OAAQ;IACJ,OAAO,EAAE,IAAI;;EAIb;yBAAS;IACL,gBAAgB,EAAE,eAAe;;EAGzC,MAAO;IACH,MAAM,EAAE,cAAc;;EAG1B,MAAO;IACH,eAAe,EAAE,mBAAmB;IAEpC;aACG;MACC,gBAAgB,EAAE,eAAe;;EAIrC;oBACG;IACC,MAAM,EAAE,yBAAyB;AC3F7C,UAQC;EAPC,WAAW,EAAE,sBAAsB;EACnC,GAAG,EAAE,0DAA6I;EAClJ,GAAG,EAAE,4aAAuL;AAQ9L,UAAW;EACT,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,sBAAsB;EACnC,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,CAAC;EACd,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;;AAIA,0BAAS;EAAE,OAAO,EAAE,KAAK;;AACzB,sBAAS;EAAE,OAAO,EAAE,KAAK;;AAEzB;qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,oBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,oBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,gCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,kCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,iCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,oCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,iCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,kCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,oCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,gCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,gCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,gCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,oBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAS3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,wBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,sBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,0BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,kCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,iCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,gCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,iCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,kCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,qCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,mCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,uCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,oCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,gCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,+BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,iCAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,8BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,6BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,4BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,2BAAS;EAAE,OAAO,EAAE,OAAO;;AAC3B,yBAAS;EAAE,OAAO,EAAE,OAAO;;AClS/D,CAAE;ECgEA,kBAAkB,ED/DE,UAAU;ECgE3B,eAAe,EDhEE,UAAU;ECiEtB,UAAU,EDjEE,UAAU;;AAEhC;OACQ;EC4DN,kBAAkB,ED3DE,UAAU;EC4D3B,eAAe,ED5DE,UAAU;EC6DtB,UAAU,ED7DE,UAAU;;AAMhC,IAAK;EACH,SAAS,EAAE,IAAI;EACf,2BAA2B,EAAE,WAAa;;AAG5C,IAAK;EACH,WAAW,EEsBa,wBAAuB;EFrB/C,SAAS,EGxBiB,IAAI;EHyB9B,WAAW,EGxBe,GAAG;EHyB7B,KAAK,EEmyBuB,OAAU;EFlyBtC,gBAAgB,EEssBY,IAAQ;;AFlsBtC;;;QAGS;EACP,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,OAAO;;AAMtB,CAAE;EACA,KAAK,EEmtBuB,OAAW;EFltBvC,eAAe,EAAE,IAAI;EAErB,gBACQ;IACN,KAAK,EE4Y8B,OAAiB;IF3YpD,eAAe,EEhBK,SAAS;EFmB/B,OAAQ;IIrDR,OAAO,EAAE,WAAW;IAEpB,OAAO,EAAE,iCAAiC;IAC1C,cAAc,EAAE,IAAI;;AJ6DtB,MAAO;EACL,MAAM,EAAE,CAAC;;AAMX,GAAI;EACF,cAAc,EAAE,MAAM;;AAIxB,eAAgB;EKvEd,OAAO,EADuB,KAAK;EAEnC,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;;AL0Ed,YAAa;EACX,aAAa,EEwBa,GAAG;;AFlB/B,cAAe;EACb,OAAO,EEsoBqB,GAAG;EFroB/B,WAAW,EGzFe,GAAG;EH0F7B,gBAAgB,EEsoBY,IAAQ;EFroBpC,MAAM,EAAE,cAA2B;EACnC,aAAa,EEwoBe,GAAmB;EDhjB/C,kBAAkB,EAAE,oBAAW;EAC1B,aAAa,EAAE,oBAAW;EACvB,UAAU,EAAE,oBAAW;EIlL/B,OAAO,EL4FiB,YAAY;EK3FpC,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;;AL8Fd,WAAY;EACV,aAAa,EAAE,GAAG;;AAMpB,EAAG;EACD,UAAU,EEmPuB,IAAqB;EFlPtD,aAAa,EEkPoB,IAAqB;EFjPtD,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,iBAAoB;;AAQlC,QAAS;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,MAAM;EAChB,IAAI,EAAE,gBAAa;EACnB,MAAM,EAAE,CAAC;;AAQT,mDACQ;EACN,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,OAAO;EACjB,IAAI,EAAE,IAAI;;AM3Id;4BAC6B;EAC3B,WAAW,EJ0Da,OAAO;EIzD/B,WAAW,EJ0Da,GAAG;EIzD3B,WAAW,EJ0Da,GAAG;EIzD3B,KAAK,EHPqB,OAAO;EGSjC;;;;;;;;;;;;;YACO;IACL,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,CAAC;IACd,KAAK,EJg0BqB,OAAW;;AI5zBzC;;OAEQ;EACN,UAAU,EJ0UuB,IAAqB;EIzUtD,aAAa,EAAE,IAA2B;EAE1C;;;;;;;;YACO;IACL,SAAS,EAAE,GAAG;;AAGlB;;OAEQ;EACN,UAAU,EAAE,IAA2B;EACvC,aAAa,EAAE,IAA2B;EAE1C;;;;;;;;YACO;IACL,SAAS,EAAE,GAAG;;AAIlB,OAAQ;EAAE,SAAS,EJSO,IAA8B;;AIRxD,OAAQ;EAAE,SAAS,EJSO,IAA+B;;AIRzD,OAAQ;EAAE,SAAS,EJSO,IAA6B;;AIRvD,OAAQ;EAAE,SAAS,EJSO,IAA8B;;AIRxD,OAAQ;EAAE,SAAS,EJSO,IAAe;;AIRzC,OAAQ;EAAE,SAAS,EJSO,IAA8B;;AIHxD,CAAE;EACA,MAAM,EAAE,QAA+B;;AAGzC,KAAM;EACJ,aAAa,EJsSoB,IAAqB;EIrStD,SAAS,EAAE,IAA+B;EAC1C,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,GAAG;EAEhB,yBAAmC;IANrC,KAAM;MAOF,SAAS,EAAE,IAAuB;;AAStC;MACO;EACL,SAAS,EAAE,GAAkD;;AAG/D;KACM;EACJ,gBAAgB,EJmoBY,OAAiB;EIloB7C,OAAO,EAAE,IAAI;;AAIf,UAAqB;EAAE,UAAU,EAAE,IAAI;;AACvC,WAAqB;EAAE,UAAU,EAAE,KAAK;;AACxC,YAAqB;EAAE,UAAU,EAAE,MAAM;;AACzC,aAAqB;EAAE,UAAU,EAAE,OAAO;;AAC1C,YAAqB;EAAE,WAAW,EAAE,MAAM;;AAG1C,eAAqB;EAAE,cAAc,EAAE,SAAS;;AAChD,eAAqB;EAAE,cAAc,EAAE,SAAS;;AAChD,gBAAqB;EAAE,cAAc,EAAE,UAAU;;AAGjD,WAAY;EACV,KAAK,EJ6uBuB,OAAW;;AK/0BvC,aAAW;EACT,KAAK,EL8vBqB,OAAW;;AK5vBvC,oBAAkB;EAChB,KAAK,EAAE,OAAmB;;AAJ5B,aAAW;EACT,KAAK,ELwsBqB,OAAmB;;AKtsB/C,oBAAkB;EAChB,KAAK,EAAE,OAAmB;;AAJ5B,UAAW;EACT,KAAK,EL4sBqB,OAAgB;;AK1sB5C,iBAAkB;EAChB,KAAK,EAAE,OAAmB;;AAJ5B,aAAW;EACT,KAAK,ELgtBqB,OAAmB;;AK9sB/C,oBAAkB;EAChB,KAAK,EAAE,OAAmB;;AAJ5B,YAAW;EACT,KAAK,ELotBqB,OAAkB;;AKltB9C,mBAAkB;EAChB,KAAK,EAAE,OAAmB;;AD8G9B,WAAY;EAGV,KAAK,EAAE,IAAI;;AErHX,WAAW;EACT,gBAAgB,EN8vBU,OAAW;;AM5vBvC,kBAAkB;EAChB,gBAAgB,EAAE,OAAmB;;AAJvC,WAAW;EACT,gBAAgB,EN0sBU,OAAiB;;AMxsB7C,kBAAkB;EAChB,gBAAgB,EAAE,OAAmB;;AAJvC,QAAW;EACT,gBAAgB,EN8sBU,OAAc;;AM5sB1C,eAAkB;EAChB,gBAAgB,EAAE,OAAmB;;AAJvC,WAAW;EACT,gBAAgB,ENktBU,OAAiB;;AMhtB7C,kBAAkB;EAChB,gBAAgB,EAAE,OAAmB;;AAJvC,UAAW;EACT,gBAAgB,ENstBU,OAAgB;;AMptB5C,iBAAkB;EAChB,gBAAgB,EAAE,OAAmB;;AFiIzC,YAAa;EACX,cAAc,EAAE,IAAiC;EACjD,MAAM,EAAE,WAAmD;EAC3D,aAAa,EAAE,iBAAmC;;AAQpD;EACG;EACD,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,IAA2B;EAC1C;;;OACG;IACD,aAAa,EAAE,CAAC;;AAYpB,cAAe;EAJb,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;;AASlB,YAAa;EAVX,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;EAWhB,WAAW,EAAE,IAAI;EAEjB,iBAAK;IACH,OAAO,EAAE,YAAY;IACrB,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;AAKtB,EAAG;EACD,UAAU,EAAE,CAAC;EACb,aAAa,EJ0KoB,IAAqB;;AIxKxD;EACG;EACD,WAAW,EHzLe,GAAG;;AG2L/B,EAAG;EACD,WAAW,EAAE,IAAI;;AAEnB,EAAG;EACD,WAAW,EAAE,CAAC;;AGvLd,iDACQ;EACN,OAAO,EAAE,GAAG;EACZ,OAAO,EAAE,KAAK;AAEhB,uBAAQ;EACN,KAAK,EAAE,IAAI;AH8Lb,yBAA2C;EACzC,iBAAG;IACD,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAA4B;IACnC,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,KAAK;IIlNrB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM;EJmNjB,iBAAG;IACD,WAAW,EJioBa,KAA4B;;AIvnB1D;yBAE0B;EACxB,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,kBAA6B;;AAE9C,WAAY;EACV,SAAS,EAAE,GAAG;EACd,cAAc,EAAE,SAAS;;AAI3B,UAAW;EACT,OAAO,EAAE,SAAiD;EAC1D,MAAM,EAAE,QAAyB;EACjC,SAAS,EJkmBoB,IAAsB;EIjmBnD,WAAW,EAAE,iBAAkC;EAK7C;;0BAAa;IACX,aAAa,EAAE,CAAC;EAMpB;;mBAEO;IACL,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,GAAG;IACd,WAAW,EHhQa,GAAG;IGiQ3B,KAAK,EJ6kBqB,OAAW;II3kBrC;;4BAAS;MACP,OAAO,EAAE,aAAa;;AAQ5B;qBACsB;EACpB,aAAa,EAAE,IAAI;EACnB,YAAY,EAAE,CAAC;EACf,YAAY,EAAE,iBAAkC;EAChD,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,KAAK;EAMf;;;;;qCAAS;IAAE,OAAO,EAAE,EAAE;EACtB;;;;;oCAAQ;IACN,OAAO,EAAE,aAAa;;AAM5B,OAAQ;EACN,aAAa,EJ8DoB,IAAqB;EI7DtD,UAAU,EAAE,MAAM;EAClB,WAAW,EHnSe,GAAG;;AQC/B;;;IAGK;EACH,WAAW,ETsCa,iDAAK;;ASlC/B,IAAK;EACH,OAAO,EAAE,OAAO;EAChB,SAAS,EAAE,GAAG;EACd,KAAK,ETyyBuB,OAAO;ESxyBnC,gBAAgB,ETyyBY,OAAO;ESxyBnC,aAAa,ET0Fa,GAAG;;AStF/B,GAAI;EACF,OAAO,EAAE,OAAO;EAChB,SAAS,EAAE,GAAG;EACd,KAAK,ETmyBuB,IAAI;ESlyBhC,gBAAgB,ETmyBY,IAAI;ESlyBhC,aAAa,ETmFa,GAAG;ESlF7B,UAAU,EAAE,kCAA8B;EAE1C,OAAI;IACF,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;;AAKpB,GAAI;EACF,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,MAAiC;EAC1C,MAAM,EAAE,QAA+B;EACvC,SAAS,EAAE,IAAqB;EAChC,WAAW,ERxCe,GAAG;EQyC7B,UAAU,EAAE,SAAS;EACrB,SAAS,EAAE,UAAU;EACrB,KAAK,ETixBuB,OAAU;EShxBtC,gBAAgB,ET+wBY,OAAO;ES9wBnC,MAAM,EAAE,cAA2B;EACnC,aAAa,ET0Da,GAAG;ESvD7B,QAAK;IACH,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,OAAO;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,QAAQ;IACrB,gBAAgB,EAAE,WAAW;IAC7B,aAAa,EAAE,CAAC;;AAKpB,eAAgB;EACd,UAAU,ETiwBkB,KAAK;EShwBjC,UAAU,EAAE,MAAM;;AC1DpB,UAAW;ECHT,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAG,IAAa;EAC5B,aAAa,EAAE,IAAa;EJI5B,mCACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,gBAAQ;IACN,KAAK,EAAE,IAAI;EGPb,yBAAmC;IAHrC,UAAW;MAIP,KAAK,EVoUsB,KAAiB;EUlU9C,yBAAmC;IANrC,UAAW;MAOP,KAAK,EVsUsB,KAAkB;EUpU/C,0BAAmC;IATrC,UAAW;MAUP,KAAK,EVwUsB,MAAwB;;AU9TvD,gBAAiB;ECvBf,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAG,IAAa;EAC5B,aAAa,EAAE,IAAa;EJI5B,+CACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,sBAAQ;IACN,KAAK,EAAE,IAAI;;AGmBf,IAAK;ECvBH,WAAW,EAAG,KAAc;EAC5B,YAAY,EAAE,KAAc;EJH5B,uBACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,UAAQ;IACN,KAAK,EAAE,IAAI;;AKTb,0hBAAS;EACP,QAAQ,EAAE,QAAQ;EAElB,UAAU,EAAE,GAAG;EAEf,YAAY,EAAG,IAAwB;EACvC,aAAa,EAAE,IAAwB;;AAUzC,qIAAS;EACP,KAAK,EAAE,IAAI;;AAOX,SAAyB;EACvB,KAAK,EAAE,QAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,GAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,GAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,SAAyB;EACvB,KAAK,EAAE,GAAoC;;AAD7C,UAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,UAAyB;EACvB,KAAK,EAAE,SAAoC;;AAD7C,UAAyB;EACvB,KAAK,EAAE,IAAoC;;AAmB7C,cAAsB;EACpB,KAAK,EAAE,IAAI;;AANb,cAA8B;EAC5B,KAAK,EAAE,QAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,GAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,GAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,cAA8B;EAC5B,KAAK,EAAE,GAAoC;;AAD7C,eAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,eAA8B;EAC5B,KAAK,EAAE,SAAoC;;AAD7C,eAA8B;EAC5B,KAAK,EAAE,IAAoC;;AAN7C,cAAsB;EACpB,IAAI,EAAE,IAAI;;AANZ,cAA8B;EAC5B,IAAI,EAAE,QAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,GAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,GAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,cAA8B;EAC5B,IAAI,EAAE,GAAoC;;AAD5C,eAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,eAA8B;EAC5B,IAAI,EAAE,SAAoC;;AAD5C,eAA8B;EAC5B,IAAI,EAAE,IAAoC;;AAmB5C,gBAAgC;EAC9B,WAAW,EAAE,EAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,QAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,GAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,GAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,gBAAgC;EAC9B,WAAW,EAAE,GAAoC;;AADnD,iBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,iBAAgC;EAC9B,WAAW,EAAE,SAAoC;;AADnD,iBAAgC;EAC9B,WAAW,EAAE,IAAoC;;AFGvD,yBAAmC;EErCjC,qIAAS;IACP,KAAK,EAAE,IAAI;;EAOX,SAAyB;IACvB,KAAK,EAAE,QAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,IAAoC;;EAmB7C,cAAsB;IACpB,KAAK,EAAE,IAAI;;EANb,cAA8B;IAC5B,KAAK,EAAE,QAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,IAAoC;;EAN7C,cAAsB;IACpB,IAAI,EAAE,IAAI;;EANZ,cAA8B;IAC5B,IAAI,EAAE,QAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,IAAoC;;EAmB5C,gBAAgC;IAC9B,WAAW,EAAE,EAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,QAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,IAAoC;AFYvD,yBAAmC;EE9CjC,qIAAS;IACP,KAAK,EAAE,IAAI;;EAOX,SAAyB;IACvB,KAAK,EAAE,QAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,IAAoC;;EAmB7C,cAAsB;IACpB,KAAK,EAAE,IAAI;;EANb,cAA8B;IAC5B,KAAK,EAAE,QAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,IAAoC;;EAN7C,cAAsB;IACpB,IAAI,EAAE,IAAI;;EANZ,cAA8B;IAC5B,IAAI,EAAE,QAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,IAAoC;;EAmB5C,gBAAgC;IAC9B,WAAW,EAAE,EAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,QAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,IAAoC;AFqBvD,0BAAmC;EEvDjC,qIAAS;IACP,KAAK,EAAE,IAAI;;EAOX,SAAyB;IACvB,KAAK,EAAE,QAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,SAAyB;IACvB,KAAK,EAAE,GAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,SAAoC;;EAD7C,UAAyB;IACvB,KAAK,EAAE,IAAoC;;EAmB7C,cAAsB;IACpB,KAAK,EAAE,IAAI;;EANb,cAA8B;IAC5B,KAAK,EAAE,QAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,cAA8B;IAC5B,KAAK,EAAE,GAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,SAAoC;;EAD7C,eAA8B;IAC5B,KAAK,EAAE,IAAoC;;EAN7C,cAAsB;IACpB,IAAI,EAAE,IAAI;;EANZ,cAA8B;IAC5B,IAAI,EAAE,QAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,cAA8B;IAC5B,IAAI,EAAE,GAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,SAAoC;;EAD5C,eAA8B;IAC5B,IAAI,EAAE,IAAoC;;EAmB5C,gBAAgC;IAC9B,WAAW,EAAE,EAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,QAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,gBAAgC;IAC9B,WAAW,EAAE,GAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,SAAoC;;EADnD,iBAAgC;IAC9B,WAAW,EAAE,IAAoC;ACvDvD,KAAM;EACJ,gBAAgB,EbgIc,WAAW;;Aa9H3C,OAAQ;EACN,WAAW,EbwHmB,GAAG;EavHjC,cAAc,EbuHgB,GAAG;EatHjC,KAAK,Ebw0BuB,OAAW;Eav0BvC,UAAU,EAAE,IAAI;;AAElB,EAAG;EACD,UAAU,EAAE,IAAI;;AAMlB,MAAO;EACL,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,aAAa,Eb4UoB,IAAqB;EatUlD;;;;;0BACK;IACH,OAAO,EbiGiB,GAAG;IahG3B,WAAW,EZ5BS,GAAG;IY6BvB,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,cAA6B;EAK/C,wBAAkB;IAChB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,cAA6B;EAO1C;;;;;kDACK;IACH,UAAU,EAAE,CAAC;EAKnB,sBAAgB;IACd,UAAU,EAAE,cAA6B;EAI3C,aAAO;IACL,gBAAgB,EbuqBU,IAAQ;;Aa3pBhC;;;;;kCACK;EACH,OAAO,EbuDiB,GAAG;;Aa5CnC,eAAgB;EACd,MAAM,EAAE,cAA6B;EAKjC;;;;;mCACK;IACH,MAAM,EAAE,cAA6B;EAKzC;mCACK;IACH,mBAAmB,EAAE,GAAG;;AAW5B,4CAA8B;EAC5B,gBAAgB,EbsBY,OAAO;;AaZrC,+BAAmB;EACjB,gBAAgB,EbcY,OAAe;;AaL/C,wBAAyB;EACvB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;;AAKnB;uBAAiB;EACf,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,UAAU;;ACzIrB;;;;;;;;;+BAGiB;EACf,gBAAgB,Ed+HU,OAAe;;AcxH3C;gLAIuB;EACrB,gBAAgB,EAAE,OAAuB;;AAhB3C;;;;;;;;;gCAGiB;EACf,gBAAgB,EdmsBQ,OAAiB;;Ac5rB3C;oLAIuB;EACrB,gBAAgB,EAAE,OAAuB;;AAhB3C;;;;;;;;;6BAGiB;EACf,gBAAgB,EdusBQ,OAAc;;AchsBxC;wKAIuB;EACrB,gBAAgB,EAAE,OAAuB;;AAhB3C;;;;;;;;;gCAGiB;EACf,gBAAgB,Ed2sBQ,OAAiB;;AcpsB3C;oLAIuB;EACrB,gBAAgB,EAAE,OAAuB;;AAhB3C;;;;;;;;;+BAGiB;EACf,gBAAgB,Ed+sBQ,OAAgB;;AcxsB1C;gLAIuB;EACrB,gBAAgB,EAAE,OAAuB;;ADkJ/C,iBAAkB;EAChB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,KAAK;EAEjB,oCAA8C;IAJhD,iBAAkB;MAKd,KAAK,EAAE,IAAI;MACX,aAAa,EAAE,IAA8B;MAC7C,UAAU,EAAE,MAAM;MAClB,kBAAkB,EAAE,wBAAwB;MAC5C,MAAM,EAAE,cAA6B;MAGrC,0BAAS;QACP,aAAa,EAAE,CAAC;QAOZ;;;;;oDACK;UACH,WAAW,EAAE,MAAM;MAO3B,mCAAkB;QAChB,MAAM,EAAE,CAAC;QAOL;;;;;yEACiB;UACf,WAAW,EAAE,CAAC;QAEhB;;;;;wEACgB;UACd,YAAY,EAAE,CAAC;QAWjB;;;wEACK;UACH,aAAa,EAAE,CAAC;;AEzN5B,QAAS;EACP,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EAIT,SAAS,EAAE,CAAC;;AAGd,MAAO;EACL,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,aAAa,Ef6UoB,IAAqB;Ee5UtD,SAAS,EAAE,IAAuB;EAClC,WAAW,EAAE,OAAO;EACpB,KAAK,EfuyBuB,OAAU;EetyBtC,MAAM,EAAE,CAAC;EACT,aAAa,EAAE,iBAA8B;;AAG/C,KAAM;EACJ,OAAO,EAAE,YAAY;EACrB,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,GAAG;EAClB,WAAW,EAAE,IAAI;;AAWnB,oBAAqB;EhB4BnB,kBAAkB,EgB3BE,UAAU;EhB4B3B,eAAe,EgB5BE,UAAU;EhB6BtB,UAAU,EgB7BE,UAAU;;AAIhC;sBACuB;EACrB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;;AAIrB,kBAAmB;EACjB,OAAO,EAAE,KAAK;;AAIhB,mBAAoB;EAClB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;AAIb;YACa;EACX,MAAM,EAAE,IAAI;;AAId;;4BAE6B;Eb1E3B,OAAO,EAAE,WAAW;EAEpB,OAAO,EAAE,iCAAiC;EAC1C,cAAc,EAAE,IAAI;;Aa4EtB,MAAO;EACL,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,GAA4B;EACzC,SAAS,EdlFiB,IAAI;EcmF9B,WAAW,EdlFe,GAAG;EcmF7B,KAAK,EfqVqC,OAAK;;Ae3TjD,aAAc;EACZ,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,MAAM,Ef2F0B,IAAwD;Ee1FxF,OAAO,EAAE,QAA+C;EACxD,SAAS,EdnHiB,IAAI;EcoH9B,WAAW,EdnHe,GAAG;EcoH7B,KAAK,EfoTqC,OAAK;EenT/C,gBAAgB,Ef6De,IAAI;Ee5DnC,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,cAAuB;EAC/B,aAAa,EfsEkB,GAAmB;ED/HlD,kBAAkB,EAAE,oCAAO;EACnB,UAAU,EAAE,oCAAO;EAoH3B,kBAAkB,EAAE,4DAAW;EAC1B,aAAa,EAAE,4DAAW;EACvB,UAAU,EAAE,4DAAW;EiBnI/B,mBAAQ;IACN,YAAY,EhBiJiB,OAAO;IgBhJpC,OAAO,EAAE,CAAC;IjBUZ,kBAAkB,EAAE,sEAAO;IACnB,UAAU,EAAE,sEAAO;EAiC3B,+BAAoB;IAClB,KAAK,EEzFuB,OAAO;IF0FnC,OAAO,EAAE,CAAC;EAEZ,mCAAwB;IAAE,KAAK,EE5FD,OAAO;EF6FrC,wCAA8B;IAAE,KAAK,EE7FP,OAAO;Ec8HrC,kFAEqB;IACnB,MAAM,EfgFuB,WAAW;Ie/ExC,gBAAgB,Ef6sBU,OAAa;Ie5sBvC,OAAO,EAAE,CAAC;;AAOd,qBAAsB;EACpB,MAAM,EAAE,IAAI;;AAWd,oBAAqB;EACnB,kBAAkB,EAAE,IAAI;;AAW1B,qDAAsD;EACpD;;;qBAGoB;IAClB,WAAW,Ef2BmB,IAAwD;IezBtF;;;;;;;;;;;;;;;;;uBACkB;MAChB,WAAW,Ef2BiB,IAAgF;IexB9G;;;;;;;;;;;;;;;;;uBACkB;MAChB,WAAW,EfoBiB,IAA+E;AeTjH,WAAY;EACV,aAAa,EAAE,IAAI;;AAQrB;SACU;EACR,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EAEnB;iBAAM;IACJ,UAAU,Ef0IqB,IAAqB;IezIpD,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,OAAO;;AAGnB;;;uCAGwC;EACtC,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,KAAK;EAClB,UAAU,EAAE,MAAM;;AAGpB;qBACsB;EACpB,UAAU,EAAE,IAAI;;AAIlB;gBACiB;EACf,OAAO,EAAE,YAAY;EACrB,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,CAAC;EAChB,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,MAAM;EACnB,MAAM,EAAE,OAAO;;AAEjB;mCACoC;EAClC,UAAU,EAAE,CAAC;EACb,WAAW,EAAE,IAAI;;AASjB;;;sBAEqB;EACnB,MAAM,EfzCuB,WAAW;;Ae+C1C;;gBACqB;EACnB,MAAM,EfjDuB,WAAW;;AeyDxC;;eAAM;EACJ,MAAM,Ef1DqB,WAAW;;AeqE5C,oBAAqB;EAEnB,WAAW,EAAE,GAA4B;EACzC,cAAc,EAAE,GAA4B;EAE5C,aAAa,EAAE,CAAC;EAEhB;;;;+DACW;IACT,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;;ACxOlB;;yCAAW;EACT,MAAM,EhB6IwB,IAAgF;EgB5I9G,OAAO,EAAE,QAAqC;EAC9C,SAAS,EhBpBa,IAA8B;EgBqBpD,WAAW,EhBiCa,GAAG;EgBhC3B,aAAa,EhB4HgB,GAAoB;;AgBzHnD;;+CAAiB;EACf,MAAM,EhBqIwB,IAAgF;EgBpI9G,WAAW,EhBoImB,IAAgF;;AgBjIhH;;;;;;yDAC2B;EACzB,MAAM,EAAE,IAAI;;AAfd,4BAAW;EACT,MAAM,EhB6IwB,IAAgF;EgB5I9G,OAAO,EAAE,QAAqC;EAC9C,SAAS,EhBpBa,IAA8B;EgBqBpD,WAAW,EhBiCa,GAAG;EgBhC3B,aAAa,EhB4HgB,GAAoB;AgBzHnD,kCAAiB;EACf,MAAM,EhBqIwB,IAAgF;EgBpI9G,WAAW,EhBoImB,IAAgF;AgBjIhH;4CAC2B;EACzB,MAAM,EAAE,IAAI;AD2Od,mCAAqB;EACnB,MAAM,Ef7GwB,IAAgF;Ee8G9G,OAAO,EAAE,QAAiD;EAC1D,SAAS,Ef9Qa,IAA8B;Ee+QpD,WAAW,EfzNa,GAAG;;AgBrC7B;;yCAAW;EACT,MAAM,EhB2IwB,IAA+E;EgB1I7G,OAAO,EAAE,SAAqC;EAC9C,SAAS,EhBrBa,IAA8B;EgBsBpD,WAAW,EhBgCa,OAAS;EgB/BjC,aAAa,EhB0HgB,GAAoB;;AgBvHnD;;+CAAiB;EACf,MAAM,EhBmIwB,IAA+E;EgBlI7G,WAAW,EhBkImB,IAA+E;;AgB/H/G;;;;;;yDAC2B;EACzB,MAAM,EAAE,IAAI;;AAfd,4BAAW;EACT,MAAM,EhB2IwB,IAA+E;EgB1I7G,OAAO,EAAE,SAAqC;EAC9C,SAAS,EhBrBa,IAA8B;EgBsBpD,WAAW,EhBgCa,OAAS;EgB/BjC,aAAa,EhB0HgB,GAAoB;AgBvHnD,kCAAiB;EACf,MAAM,EhBmIwB,IAA+E;EgBlI7G,WAAW,EhBkImB,IAA+E;AgB/H/G;4CAC2B;EACzB,MAAM,EAAE,IAAI;ADwPd,mCAAqB;EACnB,MAAM,Ef5HwB,IAA+E;Ee6H7G,OAAO,EAAE,SAAiD;EAC1D,SAAS,Ef5Ra,IAA8B;Ee6RpD,WAAW,EfvOa,OAAS;;AegPrC,aAAc;EAEZ,QAAQ,EAAE,QAAQ;EAGlB,2BAAc;IACZ,aAAa,EAAE,MAA2B;;AAI9C,sBAAuB;EACrB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,KAAK;EACd,KAAK,Ef1J2B,IAAwD;Ee2JxF,MAAM,Ef3J0B,IAAwD;Ee4JxF,WAAW,Ef5JqB,IAAwD;Ee6JxF,UAAU,EAAE,MAAM;EAClB,cAAc,EAAE,IAAI;;AAEtB;;kEAAmC;EACjC,KAAK,Ef/J2B,IAA+E;EegK/G,MAAM,EfhK0B,IAA+E;EeiK/G,WAAW,EfjKqB,IAA+E;;AemKjH;;kEAAmC;EACjC,KAAK,EflK2B,IAAgF;EemKhH,MAAM,EfnK0B,IAAgF;EeoKhH,WAAW,EfpKqB,IAAgF;;AgB7MhH;;;;;yJASyB;EACvB,KAAK,EhB4rBqB,OAAmB;AgBzrB/C,0BAAc;EACZ,YAAY,EhBwrBc,OAAmB;EDzoB/C,kBAAkB,EAAE,oCAAO;EACnB,UAAU,EAAE,oCAAO;EiB9CzB,gCAAQ;IACN,YAAY,EAAE,OAA0B;IjB4C5C,kBAAkB,EAAE,qDAAO;IACnB,UAAU,EAAE,qDAAO;AiBvC3B,+BAAmB;EACjB,KAAK,EhB8qBqB,OAAmB;EgB7qB7C,YAAY,EhB6qBc,OAAmB;EgB5qB7C,gBAAgB,EhB8qBU,OAAiB;AgB3qB7C,mCAAuB;EACrB,KAAK,EhBwqBqB,OAAmB;;AgBtsB/C;;;;;yJASyB;EACvB,KAAK,EhBosBqB,OAAmB;AgBjsB/C,0BAAc;EACZ,YAAY,EhBgsBc,OAAmB;EDjpB/C,kBAAkB,EAAE,oCAAO;EACnB,UAAU,EAAE,oCAAO;EiB9CzB,gCAAQ;IACN,YAAY,EAAE,OAA0B;IjB4C5C,kBAAkB,EAAE,qDAAO;IACnB,UAAU,EAAE,qDAAO;AiBvC3B,+BAAmB;EACjB,KAAK,EhBsrBqB,OAAmB;EgBrrB7C,YAAY,EhBqrBc,OAAmB;EgBprB7C,gBAAgB,EhBsrBU,OAAiB;AgBnrB7C,mCAAuB;EACrB,KAAK,EhBgrBqB,OAAmB;;AgB9sB/C;;;;;+IASyB;EACvB,KAAK,EhBwsBqB,OAAkB;AgBrsB9C,wBAAc;EACZ,YAAY,EhBosBc,OAAkB;EDrpB9C,kBAAkB,EAAE,oCAAO;EACnB,UAAU,EAAE,oCAAO;EiB9CzB,8BAAQ;IACN,YAAY,EAAE,OAA0B;IjB4C5C,kBAAkB,EAAE,qDAAO;IACnB,UAAU,EAAE,qDAAO;AiBvC3B,6BAAmB;EACjB,KAAK,EhB0rBqB,OAAkB;EgBzrB5C,YAAY,EhByrBc,OAAkB;EgBxrB5C,gBAAgB,EhB0rBU,OAAgB;AgBvrB5C,iCAAuB;EACrB,KAAK,EhBorBqB,OAAkB;;AehV9C,4CAA2B;EACxB,GAAG,EAAE,IAA2B;AAEnC,oDAAmC;EAChC,GAAG,EAAE,CAAC;;AAUX,WAAY;EACV,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,OAAyB;;AAmBhC,yBAAmC;EAEjC,wBAAY;IACV,OAAO,EAAE,YAAY;IACrB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM;EAIxB,0BAAc;IACZ,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,MAAM;EAIxB,iCAAqB;IACnB,OAAO,EAAE,YAAY;EAGvB,yBAAa;IACX,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,MAAM;IAEtB;;2CAEc;MACZ,KAAK,EAAE,IAAI;EAKf,yCAA6B;IAC3B,KAAK,EAAE,IAAI;EAGb,2BAAe;IACb,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM;EAKxB;wBACU;IACR,OAAO,EAAE,YAAY;IACrB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM;IAEtB;gCAAM;MACJ,YAAY,EAAE,CAAC;EAGnB;+CACiC;IAC/B,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,CAAC;EAIhB,iDAAqC;IACnC,GAAG,EAAE,CAAC;;AAqBV;;;iCAGiB;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAChB,WAAW,EAAE,GAA4B;AAI3C;0BACU;EACR,UAAU,EAAE,IAAsD;AAIpE,4BAAY;EJlgBZ,WAAW,EAAG,KAAc;EAC5B,YAAY,EAAE,KAAc;EJH5B,uEACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,kCAAQ;IACN,KAAK,EAAE,IAAI;AQogBb,yBAAmC;EACjC,+BAAe;IACb,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,GAA4B;AAQ7C,qDAAqC;EACnC,KAAK,EAAE,IAAwB;AAQ/B,yBAAmC;EACjC,8CAAe;IACb,WAAW,EAAE,UAAoD;AAKrE,yBAAmC;EACjC,8CAAe;IACb,WAAW,EAAE,GAA6B;;AE7iBlD,IAAK;EACH,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,CAAC;EAChB,WAAW,EjB0IoB,MAAM;EiBzIrC,UAAU,EAAE,MAAM;EAClB,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,YAAY;EAC1B,MAAM,EAAE,OAAO;EACf,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,qBAAqB;EAC7B,WAAW,EAAE,MAAM;EC6BnB,OAAO,EAAE,QAAqC;EAC9C,SAAS,EjB5CiB,IAAI;EiB6C9B,WAAW,EjB5Ce,GAAG;EiB6C7B,aAAa,ElB2Da,GAAG;ED4G7B,mBAAmB,EkBrME,IAAI;ElBsMtB,gBAAgB,EkBtME,IAAI;ElBuMrB,eAAe,EkBvME,IAAI;ElBwMjB,WAAW,EkBxME,IAAI;EAKvB,kGACQ;IftBV,OAAO,EAAE,WAAW;IAEpB,OAAO,EAAE,iCAAiC;IAC1C,cAAc,EAAE,IAAI;EewBpB,kCAEQ;IACN,KAAK,EhBzBuB,IAAI;IgB0BhC,eAAe,EAAE,IAAI;EAGvB,wBACS;IACP,OAAO,EAAE,CAAC;IACV,gBAAgB,EAAE,IAAI;IlB2BxB,kBAAkB,EAAE,oCAAO;IACnB,UAAU,EAAE,oCAAO;EkBxB3B,sDAEqB;IACnB,MAAM,EjB+KuB,WAAW;IiB9KxC,cAAc,EAAE,IAAI;IE9CtB,OAAO,EF+CY,IAAG;IE5CtB,MAAM,EAAE,iBAA0B;IpB8DlC,kBAAkB,EAAE,IAAO;IACnB,UAAU,EAAE,IAAO;;AkBV7B,YAAa;ECrDX,KAAK,EjBGyB,IAAI;EiBFlC,gBAAgB,EjBGc,OAAO;EiBFrC,YAAY,EjBGkB,OAAO;EiBDrC,0IAK0B;IACxB,KAAK,EjBPuB,IAAI;IiBQhC,gBAAgB,EAAE,OAAwB;IACtC,YAAY,EAAE,OAAoB;EAExC,8EAE0B;IACxB,gBAAgB,EAAE,IAAI;EAKtB,8jBAKS;IACP,gBAAgB,EjBxBU,OAAO;IiByB7B,YAAY,EjBxBU,OAAO;EiB4BrC,mBAAO;IACL,KAAK,EjB9BuB,OAAO;IiB+BnC,gBAAgB,EjBhCY,IAAI;;AgBqDpC,YAAa;ECxDX,KAAK,ElBqJ0B,IAAI;EkBpJnC,gBAAgB,ElB4vBY,OAAW;EkB3vBvC,YAAY,ElB2vBgB,OAAW;EkBzvBvC,0IAK0B;IACxB,KAAK,ElB2IwB,IAAI;IkB1IjC,gBAAgB,EAAE,OAAwB;IACtC,YAAY,EAAE,OAAoB;EAExC,8EAE0B;IACxB,gBAAgB,EAAE,IAAI;EAKtB,8jBAKS;IACP,gBAAgB,ElBiuBQ,OAAW;IkBhuB/B,YAAY,ElBguBQ,OAAW;EkB5tBvC,mBAAO;IACL,KAAK,ElB2tBqB,OAAW;IkB1tBrC,gBAAgB,ElBkHa,IAAI;;AiBzFrC,YAAa;EC5DX,KAAK,ElByJ0B,IAAI;EkBxJnC,gBAAgB,ElBqoBY,OAAc;EkBpoB1C,YAAY,ElByJmB,OAA2B;EkBvJ1D,0IAK0B;IACxB,KAAK,ElB+IwB,IAAI;IkB9IjC,gBAAgB,EAAE,OAAwB;IACtC,YAAY,EAAE,OAAoB;EAExC,8EAE0B;IACxB,gBAAgB,EAAE,IAAI;EAKtB,8jBAKS;IACP,gBAAgB,ElB0mBQ,OAAc;IkBzmBlC,YAAY,ElB8HW,OAA2B;EkB1H1D,mBAAO;IACL,KAAK,ElBomBqB,OAAc;IkBnmBxC,gBAAgB,ElBsHa,IAAI;;AiBzFrC,SAAU;EChER,KAAK,ElB6J0B,IAAI;EkB5JnC,gBAAgB,EjBKc,OAAO;EiBJrC,YAAY,EjBKkB,OAAO;EiBHrC,wHAK0B;IACxB,KAAK,ElBmJwB,IAAI;IkBlJjC,gBAAgB,EAAE,OAAwB;IACtC,YAAY,EAAE,OAAoB;EAExC,qEAE0B;IACxB,gBAAgB,EAAE,IAAI;EAKtB,wgBAKS;IACP,gBAAgB,EjBtBU,OAAO;IiBuB7B,YAAY,EjBtBU,OAAO;EiB0BrC,gBAAO;IACL,KAAK,EjB5BuB,OAAO;IiB6BnC,gBAAgB,ElB0Ha,IAAI;;AiBzFrC,YAAa;ECpEX,KAAK,ElBiK0B,IAAI;EkBhKnC,gBAAgB,ElBuoBY,OAAc;EkBtoB1C,YAAY,ElBiKmB,OAA2B;EkB/J1D,0IAK0B;IACxB,KAAK,ElBuJwB,IAAI;IkBtJjC,gBAAgB,EAAE,OAAwB;IACtC,YAAY,EAAE,OAAoB;EAExC,8EAE0B;IACxB,gBAAgB,EAAE,IAAI;EAKtB,8jBAKS;IACP,gBAAgB,ElB4mBQ,OAAc;IkB3mBlC,YAAY,ElBsIW,OAA2B;EkBlI1D,mBAAO;IACL,KAAK,ElBsmBqB,OAAc;IkBrmBxC,gBAAgB,ElB8Ha,IAAI;;AiBzFrC,WAAY;ECxEV,KAAK,ElBqK0B,IAAI;EkBpKnC,gBAAgB,ElByoBY,OAAa;EkBxoBzC,YAAY,ElBqKmB,OAA0B;EkBnKzD,oIAK0B;IACxB,KAAK,ElB2JwB,IAAI;IkB1JjC,gBAAgB,EAAE,OAAwB;IACtC,YAAY,EAAE,OAAoB;EAExC,2EAE0B;IACxB,gBAAgB,EAAE,IAAI;EAKtB,4iBAKS;IACP,gBAAgB,ElB8mBQ,OAAa;IkB7mBjC,YAAY,ElB0IW,OAA0B;EkBtIzD,kBAAO;IACL,KAAK,ElBwmBqB,OAAa;IkBvmBvC,gBAAgB,ElBkIa,IAAI;;AiBpFrC,SAAU;EACR,KAAK,EjB2qBuB,OAAW;EiB1qBvC,WAAW,EAAE,MAAM;EACnB,aAAa,EAAE,CAAC;EAEhB,gGAIqB;IACnB,gBAAgB,EAAE,WAAW;IlB7B/B,kBAAkB,EAAE,IAAO;IACnB,UAAU,EAAE,IAAO;EkB+B3B,6DAGS;IACP,YAAY,EAAE,WAAW;EAE3B,gCACQ;IACN,KAAK,EjBqV8B,OAAiB;IiBpVpD,eAAe,EjBvEK,SAAS;IiBwE7B,gBAAgB,EAAE,WAAW;EAI7B,4HACQ;IACN,KAAK,EjB+tBmB,OAAW;IiB9tBnC,eAAe,EAAE,IAAI;;AAS3B,6BAAQ;EC/EN,OAAO,EAAE,SAAqC;EAC9C,SAAS,ElBIe,IAA8B;EkBHtD,WAAW,ElByDe,OAAS;EkBxDnC,aAAa,ElB4Da,GAAG;;AiBoB/B,6BAAQ;ECnFN,OAAO,EAAE,QAAqC;EAC9C,SAAS,ElBKe,IAA8B;EkBJtD,WAAW,ElB0De,GAAG;EkBzD7B,aAAa,ElB6Da,GAAG;;AiBuB/B,6BAAQ;ECvFN,OAAO,EAAE,OAAqC;EAC9C,SAAS,ElBKe,IAA8B;EkBJtD,WAAW,ElB0De,GAAG;EkBzD7B,aAAa,ElB6Da,GAAG;;AiB+B/B,UAAW;EACT,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;AAIb,uBAAwB;EACtB,UAAU,EAAE,GAAG;;AAOf;;8BAAY;EACV,KAAK,EAAE,IAAI;;AGpJf,KAAM;EACJ,OAAO,EAAE,CAAC;ErB+KV,kBAAkB,EAAE,oBAAW;EAC1B,aAAa,EAAE,oBAAW;EACvB,UAAU,EAAE,oBAAW;EqB/K/B,QAAK;IACH,OAAO,EAAE,CAAC;;AAId,SAAU;EACR,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,MAAM;EAElB,YAAU;IAAE,OAAO,EAAE,KAAK;IAAE,UAAU,EAAE,OAAO;;AAKjD,cAAkB;EAAE,OAAO,EAAE,SAAS;;AAEtC,iBAAkB;EAAE,OAAO,EAAE,eAAe;;AAE5C,WAAY;EACV,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,MAAM;ErB6JhB,2BAA2B,EAAE,kBAAoB;EACzC,mBAAmB,EAAE,kBAAoB;EAOjD,2BAA2B,EAAE,KAAoB;EACzC,mBAAmB,EAAE,KAAoB;EAGjD,kCAAkC,EqBtKE,IAAI;ErBuKhC,0BAA0B,EqBvKE,IAAI;;AC9B1C,MAAO;EACL,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;EACtB,UAAU,EAAI,SAAuB;EACrC,YAAY,EAAE,qBAAmC;EACjD,WAAW,EAAG,qBAAmC;;AAInD;SACU;EACR,QAAQ,EAAE,QAAQ;;AAIpB,sBAAuB;EACrB,OAAO,EAAE,CAAC;;AAIZ,cAAe;EACb,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,CAAC;EACP,OAAO,ErB4OkB,IAAI;EqB3O7B,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;EAChB,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,IAAI;EAChB,SAAS,EpBpCiB,IAAI;EoBqC9B,UAAU,EAAE,IAAI;EAChB,gBAAgB,ErB6Le,IAAI;EqB5LnC,MAAM,EAAE,cAAmC;EAC3C,MAAM,EAAE,6BAA0B;EAClC,aAAa,ErBgEa,GAAG;EDzC7B,kBAAkB,EAAE,+BAAO;EACnB,UAAU,EAAE,+BAAO;EsBtB3B,eAAe,EAAE,WAAW;EAK5B,yBAAa;IACX,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,IAAI;EAIZ,uBAAS;ICrDT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,MAAmC;IAC3C,QAAQ,EAAE,MAAM;IAChB,gBAAgB,EtBqOe,OAAO;EqB9KtC,uBAAS;IACP,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,MAAM;IACnB,WAAW,EpB/Da,GAAG;IoBgE3B,KAAK,ErB4vBqB,OAAU;IqB3vBpC,WAAW,EAAE,MAAM;;AAMrB,4DACQ;EACN,eAAe,EAAE,IAAI;EACrB,KAAK,ErBmKwB,OAAsB;EqBlKnD,gBAAgB,ErBoKa,OAAO;;AqB9JtC,oGAEQ;EACN,KAAK,ErB0kBuB,IAAuB;EqBzkBnD,eAAe,EAAE,IAAI;EACrB,OAAO,EAAE,CAAC;EACV,gBAAgB,ErBuqBU,OAAW;;AqB9pBvC,0GAEQ;EACN,KAAK,ErB2uBqB,OAAW;AqBvuBvC,0EACQ;EACN,eAAe,EAAE,IAAI;EACrB,gBAAgB,EAAE,WAAW;EAC7B,gBAAgB,EAAE,IAAI;EE1GxB,MAAM,EAAE,2DAA2D;EF4GjE,MAAM,ErB6GuB,WAAW;;AqBtG1C,sBAAiB;EACf,OAAO,EAAE,KAAK;AAIhB,SAAI;EACF,OAAO,EAAE,CAAC;;AAQd,oBAAqB;EACnB,IAAI,EAAE,IAAI;EACV,KAAK,EAAE,CAAC;;AAQV,mBAAoB;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;;AAIb,gBAAiB;EACf,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,SAAS,ErBrGe,IAA8B;EqBsGtD,WAAW,EpBtJe,GAAG;EoBuJ7B,KAAK,ErBurBuB,OAAW;EqBtrBvC,WAAW,EAAE,MAAM;;AAIrB,kBAAmB;EACjB,QAAQ,EAAE,KAAK;EACf,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,GAAuB;;AAIlC,4BAA6B;EAC3B,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,IAAI;;AAWV;qCAAO;EACL,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,SAAuB;EACtC,OAAO,EAAE,EAAE;AAGb;6CAAe;EACb,GAAG,EAAE,IAAI;EACT,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;;AAStB,yBAA2C;EAEvC,4BAAe;IACb,KAAK,EAAE,CAAC;IAAE,IAAI,EAAE,IAAI;EAItB,iCAAoB;IAClB,IAAI,EAAE,CAAC;IAAE,KAAK,EAAE,IAAI;AG7M1B;mBACoB;EAClB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB;4BAAO;IACL,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,IAAI;IAEX;;;;qCAGS;MACP,OAAO,EAAE,CAAC;;AAOd;;;kCAGwB;EACtB,WAAW,EAAE,IAAI;;AAKrB,YAAa;EACX,WAAW,EAAE,IAAI;EjBtBjB,uCACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,kBAAQ;IACN,KAAK,EAAE,IAAI;EiBmBb;2BACa;IACX,KAAK,EAAE,IAAI;EAEb;;6BAEe;IACb,WAAW,EAAE,GAAG;;AAIpB,0EAA2E;EACzE,aAAa,EAAE,CAAC;;AAIlB,6BAA8B;EAC5B,WAAW,EAAE,CAAC;EACd,oEAAyC;ICjDzC,0BAA0B,EDkDK,CAAC;ICjD7B,uBAAuB,EDiDK,CAAC;;AAIlC;+CACgD;EC/C9C,yBAAyB,EDgDG,CAAC;EC/C1B,sBAAsB,ED+CG,CAAC;;AAI/B,uBAAwB;EACtB,KAAK,EAAE,IAAI;;AAEb,iEAAkE;EAChE,aAAa,EAAE,CAAC;;AAGhB;uEACmB;ECpEnB,0BAA0B,EDqEK,CAAC;ECpE7B,uBAAuB,EDoEK,CAAC;;AAGlC,uEAAwE;EChEtE,yBAAyB,EDiEG,CAAC;EChE1B,sBAAsB,EDgEG,CAAC;;AAI/B;gCACiC;EAC/B,OAAO,EAAE,CAAC;;AAiBZ,oCAAqC;EACnC,YAAY,EAAE,GAAG;EACjB,aAAa,EAAE,GAAG;;AAEpB,0FAAwC;EACtC,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI;;AAKrB,gCAAiC;EzB9C/B,kBAAkB,EAAE,oCAAO;EACnB,UAAU,EAAE,oCAAO;EyBiD3B,yCAAW;IzBlDX,kBAAkB,EAAE,IAAO;IACnB,UAAU,EAAE,IAAO;;AyBwD7B,WAAY;EACV,WAAW,EAAE,CAAC;;AAGhB,2CAAe;EACb,YAAY,EAAE,SAAuC;EACrD,mBAAmB,EAAE,CAAC;;AAGxB,2DAAuB;EACrB,YAAY,EAAE,SAAuC;;AAQrD;;uCAEoB;EAClB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;AjBxIjB,+EACQ;EACN,OAAO,EAAE,GAAG;EACZ,OAAO,EAAE,KAAK;AAEhB,sCAAQ;EACN,KAAK,EAAE,IAAI;AiBwIX,uCAAO;EACL,KAAK,EAAE,IAAI;AAIf;;;6CAG0B;EACxB,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,CAAC;;AAKhB,6DAAqC;EACnC,aAAa,EAAE,CAAC;AAElB,uDAA+B;EAC7B,uBAAuB,ExBjEC,GAAG;EyBlG7B,0BAA0B,EDoKM,CAAC;ECnKhC,yBAAyB,EDmKM,CAAC;AAEjC,uDAA+B;EAC7B,yBAAyB,ExBrED,GAAG;EyB1G7B,uBAAuB,EDgLM,CAAC;EC/K7B,sBAAsB,ED+KM,CAAC;;AAGhC,0EAA2E;EACzE,aAAa,EAAE,CAAC;;AAGhB;gFACmB;EChLnB,0BAA0B,EDiLM,CAAC;EChLhC,yBAAyB,EDgLM,CAAC;;AAGnC,gFAAiF;EC5L/E,uBAAuB,ED6LI,CAAC;EC5L3B,sBAAsB,ED4LI,CAAC;;AAO9B,oBAAqB;EACnB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,KAAK;EACnB,eAAe,EAAE,QAAQ;EACzB;mCACa;IACX,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,EAAE;EAEX,sCAAkB;IAChB,KAAK,EAAE,IAAI;EAGb,gDAA4B;IAC1B,IAAI,EAAE,IAAI;;AAoBV;;;kEACuB;EACrB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,gBAAa;EACnB,cAAc,EAAE,IAAI;;AEzO1B,YAAa;EACX,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,eAAe,EAAE,QAAQ;EAGzB,2BAAiB;IACf,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;EAGlB,0BAAc;IAGZ,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,CAAC;IAKV,KAAK,EAAE,IAAI;IAEX,KAAK,EAAE,IAAI;IACX,aAAa,EAAE,CAAC;;AAuBpB;;0BAE2B;EACzB,OAAO,EAAE,UAAU;EAEnB;;+DAAqC;IACnC,aAAa,EAAE,CAAC;;AAIpB;gBACiB;EACf,KAAK,EAAE,EAAE;EACT,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,MAAM;;AAKxB,kBAAmB;EACjB,OAAO,EAAE,QAA+C;EACxD,SAAS,EzBtEiB,IAAI;EyBuE9B,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,CAAC;EACd,KAAK,E1BgWqC,OAAK;E0B/V/C,UAAU,EAAE,MAAM;EAClB,gBAAgB,E1B8wBY,OAAa;E0B7wBzC,MAAM,EAAE,cAAyC;EACjD,aAAa,E1B4Ba,GAAG;E0BzB7B;;6DAAW;IACT,OAAO,EAAE,QAAiD;IAC1D,SAAS,E1BjCa,IAA8B;I0BkCpD,aAAa,E1BwBW,GAAG;E0BtB7B;;6DAAW;IACT,OAAO,EAAE,SAAiD;IAC1D,SAAS,E1BvCa,IAA8B;I0BwCpD,aAAa,E1BkBW,GAAG;E0Bd7B;2CACuB;IACrB,UAAU,EAAE,CAAC;;AAKjB;;;;;;gEAMiE;EDtG/D,0BAA0B,ECuGG,CAAC;EDtG3B,uBAAuB,ECsGG,CAAC;;AAEhC,8BAA+B;EAC7B,YAAY,EAAE,CAAC;;AAEjB;;;;;;kEAMmE;ED1GjE,yBAAyB,EC2GG,CAAC;ED1G1B,sBAAsB,EC0GG,CAAC;;AAE/B,6BAA8B;EAC5B,WAAW,EAAE,CAAC;;AAKhB,gBAAiB;EACf,QAAQ,EAAE,QAAQ;EAGlB,SAAS,EAAE,CAAC;EACZ,WAAW,EAAE,MAAM;EAInB,uBAAO;IACL,QAAQ,EAAE,QAAQ;IAClB,8BAAO;MACL,WAAW,EAAE,IAAI;IAGnB,4FAES;MACP,OAAO,EAAE,CAAC;EAMZ;2CACa;IACX,YAAY,EAAE,IAAI;EAIpB;0CACa;IACX,WAAW,EAAE,IAAI;;AC1JvB,IAAK;EACH,aAAa,EAAE,CAAC;EAChB,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;EpBEhB,uBACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,UAAQ;IACN,KAAK,EAAE,IAAI;EoBLb,SAAK;IACH,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK;IAEd,aAAI;MACF,QAAQ,EAAE,QAAQ;MAClB,OAAO,EAAE,KAAK;MACd,OAAO,E3B4Y+B,SAAU;M2B3YhD,wCACQ;QACN,eAAe,EAAE,IAAI;QACrB,gBAAgB,E3Bo0BM,OAAa;I2B/zBvC,sBAAe;MACb,KAAK,E3BozBmB,OAAW;M2BlzBnC,0DACQ;QACN,KAAK,E3BgzBiB,OAAW;Q2B/yBjC,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,WAAW;QAC7B,MAAM,E3ByLmB,WAAW;E2BlLxC,0DAEQ;IACN,gBAAgB,E3B6yBQ,OAAa;I2B5yBrC,YAAY,E3BktBY,OAAW;E2BzsBvC,iBAAa;ILrDb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,MAAmC;IAC3C,QAAQ,EAAE,MAAM;IAChB,gBAAgB,EAJS,OAAO;EK6DhC,mBAAe;IACb,SAAS,EAAE,IAAI;;AASnB,SAAU;EACR,aAAa,EAAE,cAAgC;EAC/C,cAAK;IACH,KAAK,EAAE,IAAI;IAEX,aAAa,EAAE,IAAI;IAGnB,kBAAI;MACF,YAAY,EAAE,GAAG;MACjB,WAAW,E1BhFW,GAAG;M0BiFzB,MAAM,EAAE,qBAAqB;MAC7B,aAAa,EAAE,WAA2C;MAC1D,wBAAQ;QACN,YAAY,EAAE,oBAA0F;IAM1G,2FAEQ;MACN,KAAK,E3B2U+B,OAAK;M2B1UzC,gBAAgB,E3BkoBM,IAAQ;M2BjoB9B,MAAM,EAAE,cAAkD;MAC1D,mBAAmB,EAAE,WAAW;MAChC,MAAM,EAAE,OAAO;;AAerB,eAAK;EACH,KAAK,EAAE,IAAI;EAGX,mBAAI;IACF,aAAa,E3B0TyB,GAAmB;E2BxT3D,oBAAK;IACH,WAAW,EAAE,GAAG;EAKhB,8FAEQ;IACN,KAAK,E3B8hBmB,IAAuB;I2B7hB/C,gBAAgB,E3B6nBM,OAAW;;A2BpnBvC,iBAAK;EACH,KAAK,EAAE,IAAI;EACX,sBAAK;IACH,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,CAAC;;AAYpB,uCAAe;EACb,KAAK,EAAE,IAAI;EAEX,iDAAK;IACH,KAAK,EAAE,IAAI;IACX,yDAAI;MACF,UAAU,EAAE,MAAM;MAClB,aAAa,EAAE,GAAG;EAItB,yCAA2B;IACzB,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;EAGZ,yBAAmC;IACjC,iDAAK;MACH,OAAO,EAAE,UAAU;MACnB,KAAK,EAAE,EAAE;MACT,yDAAI;QACF,aAAa,EAAE,CAAC;;AASxB,4CAAoB;EAClB,aAAa,EAAE,CAAC;EAEhB,8DAAS;IAEP,YAAY,EAAE,CAAC;IACf,aAAa,E3BtFW,GAAG;E2ByF7B;;;;6CAEoB;IAClB,MAAM,EAAE,cAA+C;EAGzD,yBAAmC;IACjC,8DAAS;MACP,aAAa,EAAE,cAA+C;MAC9D,aAAa,EAAE,WAA2C;IAE5D;;;;+CAEoB;MAClB,mBAAmB,E3BihBK,IAAQ;;A2BtgBpC,wBAAY;EACV,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,MAAM;AAEpB,sBAAU;EACR,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,OAAO;;AASvB,wBAAyB;EAEvB,UAAU,EAAE,IAAI;EF7OhB,uBAAuB,EE+OI,CAAC;EF9O3B,sBAAsB,EE8OI,CAAC;;ACxO9B,OAAQ;EACN,QAAQ,EAAE,QAAQ;EAClB,UAAU,E5BuVuB,IAAI;E4BtVrC,aAAa,E5BuVoB,IAAqB;E4BtVtD,MAAM,EAAE,qBAAqB;ErBD7B,6BACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,aAAQ;IACN,KAAK,EAAE,IAAI;EqBAb,yBAA2C;IAT7C,OAAQ;MAUJ,aAAa,E5BiVkB,GAAmB;;AOxVpD,2CACQ;EACN,OAAO,EAAE,GAAG;EACZ,OAAO,EAAE,KAAK;AAEhB,oBAAQ;EACN,KAAK,EAAE,IAAI;AqBcb,yBAA2C;EAH7C,cAAe;IAIX,KAAK,EAAE,IAAI;;AAef,gBAAiB;EACf,UAAU,EAAE,OAAO;EACnB,aAAa,E5BmToB,IAA+B;E4BlThE,YAAY,E5BkTqB,IAA+B;E4BjThE,UAAU,EAAE,qBAAqB;EACjC,UAAU,EAAE,sCAAkC;EAE9C,0BAA0B,EAAE,KAAK;ErB3CjC,+CACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,sBAAQ;IACN,KAAK,EAAE,IAAI;EqBuCb,mBAAK;IACH,UAAU,EAAE,IAAI;EAGlB,yBAA2C;IAb7C,gBAAiB;MAcb,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,CAAC;MACb,UAAU,EAAE,IAAI;MAEhB,yBAAW;QACT,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,eAAe;QACvB,cAAc,EAAE,CAAC;QACjB,QAAQ,EAAE,kBAAkB;MAG9B,mBAAK;QACH,UAAU,EAAE,OAAO;MAKrB,8GAEuB;QACrB,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;;AAOpB;qCAAiB;EACf,UAAU,E5B2QqB,KAAK;E4BzQpC,6DAAuE;IAHzE;yCAAiB;MAIb,UAAU,EAAE,KAAK;;AAYrB;;;mCACmB;EACjB,YAAY,EAAE,KAA2B;EACzC,WAAW,EAAG,KAA2B;EAEzC,yBAA2C;IAL7C;;;uCACmB;MAKf,YAAY,EAAE,CAAC;MACf,WAAW,EAAG,CAAC;;AAarB,kBAAmB;EACjB,OAAO,E5B2IkB,IAAI;E4B1I7B,YAAY,EAAE,OAAO;EAErB,yBAA2C;IAJ7C,kBAAmB;MAKf,aAAa,EAAE,CAAC;;AAKpB;oBACqB;EACnB,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,CAAC;EACP,OAAO,E5BiIkB,IAAI;E4B9H7B,yBAA2C;IAR7C;wBACqB;MAQjB,aAAa,EAAE,CAAC;;AAGpB,iBAAkB;EAChB,GAAG,EAAE,CAAC;EACN,YAAY,EAAE,OAAO;;AAEvB,oBAAqB;EACnB,MAAM,EAAE,CAAC;EACT,aAAa,EAAE,CAAC;EAChB,YAAY,EAAE,OAAO;;AAMvB,aAAc;EACZ,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,SAAmD;EAC5D,SAAS,E5BlHe,IAA8B;E4BmHtD,WAAW,E5B6LsB,IAAqB;E4B5LtD,MAAM,E5B2L2B,IAAI;E4BzLrC,wCACQ;IACN,eAAe,EAAE,IAAI;EAGvB,mBAAM;IACJ,OAAO,EAAE,KAAK;EAGhB,yBAA2C;IACzC,4EAC6B;MAC3B,WAAW,EAAE,KAA2B;;AAW9C,cAAe;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,YAAY,E5BkKqB,IAA+B;E4BjKhE,OAAO,EAAE,QAAQ;EC/LjB,UAAU,EAAE,GAAwC;EACpD,aAAa,EAAE,GAAwC;EDgMvD,gBAAgB,EAAE,WAAW;EAC7B,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,qBAAqB;EAC7B,aAAa,E5B7Fa,GAAG;E4BiG7B,oBAAQ;IACN,OAAO,EAAE,CAAC;EAIZ,wBAAU;IACR,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,GAAG;IACX,aAAa,EAAE,GAAG;EAEpB,oCAAsB;IACpB,UAAU,EAAE,GAAG;EAGjB,yBAA2C;IA5B7C,cAAe;MA6BX,OAAO,EAAE,IAAI;;AAUjB,WAAY;EACV,MAAM,EAAE,WAA4D;EAEpE,oBAAS;IACP,WAAW,EAAK,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,E5BsHoB,IAAqB;E4BnHtD,yBAA+C;IAE7C,gCAAqB;MACnB,QAAQ,EAAE,MAAM;MAChB,KAAK,EAAE,IAAI;MACX,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,CAAC;MACb,gBAAgB,EAAE,WAAW;MAC7B,MAAM,EAAE,CAAC;MACT,UAAU,EAAE,IAAI;MAChB;uDACiB;QACf,OAAO,EAAE,iBAAiB;MAE5B,yCAAS;QACP,WAAW,E5BoGgB,IAAqB;Q4BnGhD,gGACQ;UACN,gBAAgB,EAAE,IAAI;EAO9B,yBAA2C;IAlC7C,WAAY;MAmCR,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,CAAC;MAET,gBAAK;QACH,KAAK,EAAE,IAAI;QACX,oBAAI;UACF,WAAW,E5BsFkB,IAA2C;U4BrFxE,cAAc,E5BqFe,IAA2C;;A4BzEhF,YAAa;EACX,WAAW,EAAE,KAA2B;EACxC,YAAY,EAAE,KAA2B;EACzC,OAAO,EAAE,SAA+B;EACxC,UAAU,EAAE,qBAAqB;EACjC,aAAa,EAAE,qBAAqB;E7B/NpC,kBAAkB,EAAE,wEAAO;EACnB,UAAU,EAAE,wEAAO;E8B/D3B,UAAU,EAAE,GAAwC;EACpD,aAAa,EAAE,GAAwC;EduavD,yBAAmC;IAEjC,wBAAY;MACV,OAAO,EAAE,YAAY;MACrB,aAAa,EAAE,CAAC;MAChB,cAAc,EAAE,MAAM;IAIxB,0BAAc;MACZ,OAAO,EAAE,YAAY;MACrB,KAAK,EAAE,IAAI;MACX,cAAc,EAAE,MAAM;IAIxB,iCAAqB;MACnB,OAAO,EAAE,YAAY;IAGvB,yBAAa;MACX,OAAO,EAAE,YAAY;MACrB,cAAc,EAAE,MAAM;MAEtB;;6CAEc;QACZ,KAAK,EAAE,IAAI;IAKf,yCAA6B;MAC3B,KAAK,EAAE,IAAI;IAGb,2BAAe;MACb,aAAa,EAAE,CAAC;MAChB,cAAc,EAAE,MAAM;IAKxB;0BACU;MACR,OAAO,EAAE,YAAY;MACrB,UAAU,EAAE,CAAC;MACb,aAAa,EAAE,CAAC;MAChB,cAAc,EAAE,MAAM;MAEtB;kCAAM;QACJ,YAAY,EAAE,CAAC;IAGnB;iDACiC;MAC/B,QAAQ,EAAE,QAAQ;MAClB,WAAW,EAAE,CAAC;IAIhB,iDAAqC;MACnC,GAAG,EAAE,CAAC;EajMR,yBAA+C;IADjD,wBAAY;MAER,aAAa,EAAE,GAAG;MAElB,mCAAa;QACX,aAAa,EAAE,CAAC;EAStB,yBAA2C;IA1B7C,YAAa;MA2BT,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,CAAC;MACT,WAAW,EAAE,CAAC;MACd,YAAY,EAAE,CAAC;MACf,WAAW,EAAE,CAAC;MACd,cAAc,EAAE,CAAC;M7B1PnB,kBAAkB,EAAE,IAAO;MACnB,UAAU,EAAE,IAAO;;A6BkQ7B,iCAAkC;EAChC,UAAU,EAAE,CAAC;EHrUb,uBAAuB,EGsUI,CAAC;EHrU3B,sBAAsB,EGqUI,CAAC;;AAG9B,sDAAuD;EACrD,aAAa,EAAE,CAAC;EH1UhB,uBAAuB,EzBkWU,GAAmB;EyBjWnD,sBAAsB,EzBiWU,GAAmB;EyB1VpD,0BAA0B,EGoUI,CAAC;EHnU9B,yBAAyB,EGmUI,CAAC;;AAQjC,WAAY;ECjVV,UAAU,EAAE,GAAwC;EACpD,aAAa,EAAE,GAAwC;EDmVvD,mDAAS;ICpVT,UAAU,EAAE,KAAwC;IACpD,aAAa,EAAE,KAAwC;EDsVvD,mDAAS;ICvVT,UAAU,EAAE,IAAwC;IACpD,aAAa,EAAE,IAAwC;;ADgWzD,YAAa;ECjWX,UAAU,EAAE,IAAwC;EACpD,aAAa,EAAE,IAAwC;EDmWvD,yBAA2C;IAH7C,YAAa;MAIT,KAAK,EAAE,IAAI;MACX,WAAW,E5BNoB,IAA+B;M4BO9D,YAAY,E5BPmB,IAA+B;;A4BoBlE,yBAA2C;EACzC,YAAa;IACX,KAAK,EAAE,eAAe;;EAExB,aAAc;IACZ,KAAK,EAAE,gBAAgB;IACzB,YAAY,EAAE,KAA2B;IAEvC,6BAAgB;MACd,YAAY,EAAE,CAAC;AAUrB,eAAgB;EACd,gBAAgB,E5BnCiB,OAAO;E4BoCxC,YAAY,E5BnCqB,OAAgC;E4BqCjE,6BAAc;IACZ,KAAK,E5B1BkC,IAA0B;I4B2BjE,wEACQ;MACN,KAAK,E5B5BgC,OAAwC;M4B6B7E,gBAAgB,E5B5BqB,WAAW;E4BgCpD,4BAAa;IACX,KAAK,E5BjD0B,IAAI;E4BqDnC,oCAAS;IACP,KAAK,E5BxCgC,IAA0B;I4B0C/D,sFACQ;MACN,KAAK,E5BpD8B,IAAI;M4BqDvC,gBAAgB,E5BpDmB,WAAW;E4BwDhD,2IAEQ;IACN,KAAK,E5B1D8B,IAAI;I4B2DvC,gBAAgB,E5B1DmB,OAAgC;E4B8DrE,iJAEQ;IACN,KAAK,E5BhE8B,IAAI;I4BiEvC,gBAAgB,E5BhEmB,WAAW;E4BqEpD,8BAAe;IACb,YAAY,E5B5D2B,IAAI;I4B6D3C,0EACQ;MACN,gBAAgB,E5BjEqB,IAAI;I4BmE3C,wCAAU;MACR,gBAAgB,E5BnEqB,IAAI;E4BuE7C;8BACa;IACX,YAAY,E5B3FmB,OAAgC;E4BkG7D,qIAEQ;IACN,gBAAgB,E5B9FmB,OAAgC;I4B+FnE,KAAK,E5BhG8B,IAAI;E4BoG3C,yBAA+C;IAG3C,yDAAS;MACP,KAAK,E5BlG4B,IAA0B;M4BmG3D,gIACQ;QACN,KAAK,E5B7G0B,IAAI;Q4B8GnC,gBAAgB,E5B7Ge,WAAW;I4BiH5C,0MAEQ;MACN,KAAK,E5BnH0B,IAAI;M4BoHnC,gBAAgB,E5BnHe,OAAgC;I4BuHjE,gNAEQ;MACN,KAAK,E5BzH0B,IAAI;M4B0HnC,gBAAgB,E5BzHe,WAAW;E4BqIpD,4BAAa;IACX,KAAK,E5BnIkC,IAA0B;I4BoIjE,kCAAQ;MACN,KAAK,E5B7IgC,IAAI;E4BiJ7C,yBAAU;IACR,KAAK,E5B1IkC,IAA0B;I4B2IjE,gEACQ;MACN,KAAK,E5BrJgC,IAAI;I4ByJzC,4LACQ;MACN,KAAK,E5BvJ8B,IAAI;;A4B+J/C,eAAgB;EACd,gBAAgB,E5B/I0B,IAAI;E4BgJ9C,YAAY,E5B/I8B,OAA+B;E4BiJzE,6BAAc;IACZ,KAAK,E5BtImC,OAA0B;I4BuIlE,wEACQ;MACN,KAAK,E5BxIiC,IAAI;M4ByI1C,gBAAgB,E5BxIsB,WAAW;E4B4IrD,4BAAa;IACX,KAAK,E5B7JmC,OAAyB;E4BiKjE,oCAAS;IACP,KAAK,E5BpJiC,OAA0B;I4BsJhE,sFACQ;MACN,KAAK,E5B9J+B,IAAgC;M4B+JpE,gBAAgB,E5BhKoB,WAAW;E4BoKjD,2IAEQ;IACN,KAAK,E5BtK+B,IAAgC;I4BuKpE,gBAAgB,E5BtKoB,OAA+B;E4B0KrE,iJAEQ;IACN,KAAK,E5B5K+B,IAAI;I4B6KxC,gBAAgB,E5B5KoB,WAAW;E4BkLrD,8BAAe;IACb,YAAY,E5BzK4B,IAAI;I4B0K5C,0EACQ;MACN,gBAAgB,E5B9KsB,IAAI;I4BgL5C,wCAAU;MACR,gBAAgB,E5BhLsB,IAAI;E4BoL9C;8BACa;IACX,YAAY,EAAE,OAA8B;EAM1C,qIAEQ;IACN,gBAAgB,E5B1MoB,OAA+B;I4B2MnE,KAAK,E5B5M+B,IAAgC;E4BgNxE,yBAA+C;IAG3C,mEAAmB;MACjB,YAAY,E5B1NsB,OAA+B;I4B4NnE,yDAAS;MACP,gBAAgB,E5B7NkB,OAA+B;I4B+NnE,yDAAS;MACP,KAAK,E5BpN6B,OAA0B;M4BqN5D,gIACQ;QACN,KAAK,E5B7N2B,IAAgC;Q4B8NhE,gBAAgB,E5B/NgB,WAAW;I4BmO7C,0MAEQ;MACN,KAAK,E5BrO2B,IAAgC;M4BsOhE,gBAAgB,E5BrOgB,OAA+B;I4ByOjE,gNAEQ;MACN,KAAK,E5B3O2B,IAAI;M4B4OpC,gBAAgB,E5B3OgB,WAAW;E4BkPrD,4BAAa;IACX,KAAK,E5BhPmC,OAA0B;I4BiPlE,kCAAQ;MACN,KAAK,E5BxPiC,IAAgC;E4B4P1E,yBAAU;IACR,KAAK,E5BvPmC,OAA0B;I4BwPlE,gEACQ;MACN,KAAK,E5BhQiC,IAAgC;I4BoQtE,4LACQ;MACN,KAAK,E5BpQ+B,IAAI;;A8BzYhD,WAAY;EACV,OAAO,EAAE,QAA2D;EACpE,aAAa,E9B6VoB,IAAqB;E8B5VtD,UAAU,EAAE,IAAI;EAChB,gBAAgB,E9B0wBc,OAAO;E8BzwBrC,aAAa,E9BmGa,GAAG;E8BjG7B,gBAAK;IACH,OAAO,EAAE,YAAY;IAErB,4BAAY;MACV,OAAO,EAAE,MAA6B;MACtC,OAAO,EAAE,KAAK;MACd,KAAK,E9BmwBqB,IAAI;E8B/vBlC,qBAAU;IACR,KAAK,E9B4zBqB,OAAW;;A+Bh1BzC,WAAY;EACV,OAAO,EAAE,YAAY;EACrB,YAAY,EAAE,CAAC;EACf,MAAM,EAAE,MAAuB;EAC/B,aAAa,E/BsGa,GAAG;E+BpG7B,gBAAK;IACH,OAAO,EAAE,MAAM;IACf;2BACO;MACL,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,QAA+C;MACxD,WAAW,E9BXW,GAAG;M8BYzB,eAAe,EAAE,IAAI;MACrB,KAAK,E/BivBmB,OAAW;M+BhvBnC,gBAAgB,E/B+biB,IAAc;M+B9b/C,MAAM,EAAE,cAA4B;MACpC,WAAW,EAAE,IAAI;IAGjB;uCACO;MACL,WAAW,EAAE,CAAC;MNXpB,yBAAyB,EzB8FC,GAAG;MyB7F1B,sBAAsB,EzB6FC,GAAG;I+B9EzB;sCACO;MNzBX,0BAA0B,EzBsGA,GAAG;MyBrG1B,uBAAuB,EzBqGA,GAAG;E+BrE3B;;+BACQ;IACN,KAAK,E/BuZ4B,OAAiB;I+BtZlD,gBAAgB,E/BkzBQ,OAAa;I+BjzBrC,YAAY,E/BuZqB,IAAI;E+BjZvC;;;oCAEQ;IACN,OAAO,EAAE,CAAC;IACV,KAAK,E/Bma4B,IAAwB;I+BlazD,gBAAgB,E/B4sBQ,OAAW;I+B3sBnC,YAAY,E/B2sBY,OAAW;I+B1sBnC,MAAM,EAAE,OAAO;EAKjB;;;;;mCAKU;IACR,KAAK,E/B+wBmB,OAAW;I+B9wBnC,gBAAgB,E/BqYiB,IAAI;I+BpYrC,YAAY,E/BqYqB,IAAI;I+BpYrC,MAAM,E/BwJqB,WAAW;;AgC3NxC;0BACO;EACL,OAAO,EAAE,SAAqC;EAC9C,SAAS,EhC6CW,IAA8B;AgC1ClD;sCACO;EPIX,yBAAyB,EzB+FC,GAAG;EyB9F1B,sBAAsB,EzB8FC,GAAG;AgC9FzB;qCACO;EPVX,0BAA0B,EzBuGA,GAAG;EyBtG1B,uBAAuB,EzBsGA,GAAG;;AgC1G3B;0BACO;EACL,OAAO,EAAE,QAAqC;EAC9C,SAAS,EhC8CW,IAA8B;AgC3ClD;sCACO;EPIX,yBAAyB,EzBgGC,GAAG;EyB/F1B,sBAAsB,EzB+FC,GAAG;AgC/FzB;qCACO;EPVX,0BAA0B,EzBwGA,GAAG;EyBvG1B,uBAAuB,EzBuGA,GAAG;;AiC1G/B,MAAO;EACL,YAAY,EAAE,CAAC;EACf,MAAM,EAAE,MAAuB;EAC/B,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;E1BIlB,2BACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,YAAQ;IACN,KAAK,EAAE,IAAI;E0BRb,SAAG;IACD,OAAO,EAAE,MAAM;IACf;oBACO;MACL,OAAO,EAAE,YAAY;MACrB,OAAO,EAAE,QAAQ;MACjB,gBAAgB,EjCiciB,IAAc;MiChc/C,MAAM,EAAE,cAAuB;MAC/B,aAAa,EjCicoB,IAAI;IiC9bvC;uBACU;MACR,eAAe,EAAE,IAAI;MACrB,gBAAgB,EjCo0BQ,OAAa;EiC/zBvC;qBACO;IACL,KAAK,EAAE,KAAK;EAKd;yBACO;IACL,KAAK,EAAE,IAAI;EAKb;;;yBAGO;IACL,KAAK,EjCmyBmB,OAAW;IiClyBnC,gBAAgB,EjCiaiB,IAAc;IiCha/C,MAAM,EjC6KqB,WAAW;;AkC3N5C,MAAO;EACL,OAAO,EAAE,MAAM;EACf,OAAO,EAAE,cAAc;EACvB,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,CAAC;EACd,KAAK,ElCqjBuB,IAAI;EkCpjBhC,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,QAAQ;EACxB,aAAa,EAAE,KAAK;EAKpB,YAAQ;IACN,OAAO,EAAE,IAAI;EAIf,WAAO;IACL,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;;AAMX,4BACQ;EACN,KAAK,ElC+hBqB,IAAI;EkC9hB9B,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,OAAO;;AAOnB,cAAe;ECxCb,gBAAgB,EnCg1BY,OAAW;EmC70BrC,sDACQ;IACN,gBAAgB,EAAE,OAAmB;;ADuC3C,cAAe;EC5Cb,gBAAgB,EnCgwBY,OAAW;EmC7vBrC,sDACQ;IACN,gBAAgB,EAAE,OAAmB;;AD2C3C,cAAe;EChDb,gBAAgB,EnCyoBY,OAAc;EmCtoBxC,sDACQ;IACN,gBAAgB,EAAE,OAAmB;;AD+C3C,WAAY;ECpDV,gBAAgB,EnC+oBY,OAAW;EmC5oBrC,gDACQ;IACN,gBAAgB,EAAE,OAAmB;;ADmD3C,cAAe;ECxDb,gBAAgB,EnC2oBY,OAAc;EmCxoBxC,sDACQ;IACN,gBAAgB,EAAE,OAAmB;;ADuD3C,aAAc;EC5DZ,gBAAgB,EnC6oBY,OAAa;EmC1oBvC,oDACQ;IACN,gBAAgB,EAAE,OAAmB;;ACF3C,MAAO;EACL,OAAO,EAAE,YAAY;EACrB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,OAAO;EAChB,SAAS,EpC2Ce,IAA8B;EoC1CtD,WAAW,EpC4vBiB,IAAI;EoC3vBhC,KAAK,EpCivBuB,IAAI;EoChvBhC,WAAW,EpC2vBiB,CAAC;EoC1vB7B,cAAc,EAAE,QAAQ;EACxB,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;EAClB,gBAAgB,EpCk0BY,OAAW;EoCj0BvC,aAAa,EpCuvBe,IAAI;EoCpvBhC,YAAQ;IACN,OAAO,EAAE,IAAI;EAIf,WAAO;IACL,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;EAGX,2CAAU;IACR,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,OAAO;EAMlB,mEAC6B;IAC3B,KAAK,EpC0tBqB,OAAW;IoCztBrC,gBAAgB,EpC2tBU,IAAI;EoCxtBhC,yBAAqB;IACnB,KAAK,EAAE,KAAK;EAGd,kCAAyB;IACvB,YAAY,EAAE,GAAG;EAGnB,4BAAwB;IACtB,WAAW,EAAE,GAAG;;AAMlB,4BACQ;EACN,KAAK,EpCisBqB,IAAI;EoChsB9B,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,OAAO;;AC3DnB,UAAW;EACT,OAAO,EAAE,SAA2C;EACpD,aAAa,ErC2dkB,IAAI;EqC1dnC,KAAK,ErC2d0B,OAAO;EqC1dtC,gBAAgB,ErCo1BY,OAAa;EqCl1BzC;gBACI;IACF,KAAK,ErCwdwB,OAAO;EqCrdtC,YAAE;IACA,aAAa,EAAE,IAAwB;IACvC,SAAS,ErCodoB,IAA6B;IqCnd1D,WAAW,EAAE,GAAG;EAGlB,eAAK;IACH,gBAAgB,EAAE,OAA0B;EAG9C,kDACmB;IACjB,aAAa,ErCkFW,GAAG;EqC/E7B,qBAAW;IACT,SAAS,EAAE,IAAI;EAGjB,oCAA8C;IA9BhD,UAAW;MA+BP,OAAO,EAAE,MAA4B;MAErC,kDACmB;QACjB,YAAY,EAAG,IAAwB;QACvC,aAAa,EAAE,IAAwB;MAGzC;oBACI;QACF,SAAS,EAAE,IAAuB;;ACxCxC,UAAW;EACT,OAAO,EAAE,KAAK;EACd,OAAO,EtC2tBqB,GAAG;EsC1tB/B,aAAa,EtC2VoB,IAAqB;EsC1VtD,WAAW,ErCLe,GAAG;EqCM7B,gBAAgB,EtC0tBY,IAAQ;EsCztBpC,MAAM,EAAE,cAA2B;EACnC,aAAa,EtC4tBe,GAAmB;EDhjB/C,kBAAkB,EAAE,uBAAW;EAC1B,aAAa,EAAE,uBAAW;EACvB,UAAU,EAAE,uBAAW;EuC3K/B;oBACQ;InCRR,OAAO,EADuB,KAAK;IAEnC,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;ImCQV,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;EAMpB,mBAAS;IACP,OAAO,EtCmtBmB,GAAG;IsCltB7B,KAAK,EtCqyBqB,OAAU;;AsChyBxC;;kBAEmB;EACjB,YAAY,EtC+tBgB,OAAW;;AuC3vBzC,MAAO;EACL,OAAO,EvCgmBqB,IAAI;EuC/lBhC,aAAa,EvC0VoB,IAAqB;EuCzVtD,MAAM,EAAE,qBAAqB;EAC7B,aAAa,EvC8lBe,GAAmB;EuC3lB/C,SAAG;IACD,UAAU,EAAE,CAAC;IAEb,KAAK,EAAE,OAAO;EAIhB,kBAAY;IACV,WAAW,EvColBe,IAAI;EuChlBhC;aACK;IACH,aAAa,EAAE,CAAC;EAGlB,cAAQ;IACN,UAAU,EAAE,GAAG;;AAQnB;kBACmB;EACjB,aAAa,EAAE,IAAqB;EAGpC;2BAAO;IACL,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,OAAO;;AAQlB,cAAe;ECvDb,gBAAgB,ExC4sBY,OAAiB;EwC3sB7C,YAAY,ExC0sBgB,OAAqB;EwCzsBjD,KAAK,ExCwsBuB,OAAmB;EwCtsB/C,iBAAG;IACD,gBAAgB,EAAE,OAAmB;EAEvC,0BAAY;IACV,KAAK,EAAE,OAAwB;;ADmDnC,WAAY;EC3DV,gBAAgB,ExCgtBY,OAAc;EwC/sB1C,YAAY,ExC8sBgB,OAAkB;EwC7sB9C,KAAK,ExC4sBuB,OAAgB;EwC1sB5C,cAAG;IACD,gBAAgB,EAAE,OAAmB;EAEvC,uBAAY;IACV,KAAK,EAAE,OAAwB;;ADuDnC,cAAe;EC/Db,gBAAgB,ExCotBY,OAAiB;EwCntB7C,YAAY,ExCktBgB,OAAqB;EwCjtBjD,KAAK,ExCgtBuB,OAAmB;EwC9sB/C,iBAAG;IACD,gBAAgB,EAAE,OAAmB;EAEvC,0BAAY;IACV,KAAK,EAAE,OAAwB;;AD2DnC,aAAc;ECnEZ,gBAAgB,ExCwtBY,OAAgB;EwCvtB5C,YAAY,ExCstBgB,OAAoB;EwCrtBhD,KAAK,ExCotBuB,OAAkB;EwCltB9C,gBAAG;IACD,gBAAgB,EAAE,OAAmB;EAEvC,yBAAY;IACV,KAAK,EAAE,OAAwB;;ACFnC,uCAGC;EAFC,IAAM;IAAE,mBAAmB,EAAE,MAAM;EACnC,EAAM;IAAE,mBAAmB,EAAE,GAAG;AAIlC,+BAGC;EAFC,IAAM;IAAE,mBAAmB,EAAE,MAAM;EACnC,EAAM;IAAE,mBAAmB,EAAE,GAAG;AAQlC,SAAU;EACR,QAAQ,EAAE,MAAM;EAChB,MAAM,EzCyU2B,IAAqB;EyCxUtD,aAAa,EzCwUoB,IAAqB;EyCvUtD,gBAAgB,EzCsmBY,OAAO;EyCrmBnC,aAAa,EzCymBe,GAAmB;EDnkB/C,kBAAkB,EAAE,kCAAO;EACnB,UAAU,EAAE,kCAAO;;A0ClC7B,aAAc;EACZ,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,EAAE;EACT,MAAM,EAAE,IAAI;EACZ,SAAS,EzCce,IAA8B;EyCbtD,WAAW,EzC4TsB,IAAqB;EyC3TtD,KAAK,EzC4lBuB,IAAI;EyC3lBhC,UAAU,EAAE,MAAM;EAClB,gBAAgB,EzCwtBY,OAAW;ED/rBvC,kBAAkB,EAAE,kCAAO;EACnB,UAAU,EAAE,kCAAO;EAoH3B,kBAAkB,EAAE,eAAW;EAC1B,aAAa,EAAE,eAAW;EACvB,UAAU,EAAE,eAAW;;A0CtIjC;qBACsB;ECApB,gBAAgB,EAAE,2LAAmI;EACrJ,gBAAgB,EAAE,sLAA8H;EAChJ,gBAAgB,EAAE,mLAA2H;EDA7I,eAAe,EAAE,SAAS;;AAO5B;oBACqB;E1C7CnB,iBAAiB,E0C8CE,uCAAuC;E1C7CrD,YAAY,E0C6CE,uCAAuC;E1C5ClD,SAAS,E0C4CE,uCAAuC;;AAO5D,qBAAsB;EErEpB,gBAAgB,E3CyoBY,OAAc;E2CtoB1C,uCAAoB;IDgDpB,gBAAgB,EAAE,2LAAmI;IACrJ,gBAAgB,EAAE,sLAA8H;IAChJ,gBAAgB,EAAE,mLAA2H;;ADoB/I,kBAAmB;EEzEjB,gBAAgB,E3C+oBY,OAAW;E2C5oBvC,oCAAoB;IDgDpB,gBAAgB,EAAE,2LAAmI;IACrJ,gBAAgB,EAAE,sLAA8H;IAChJ,gBAAgB,EAAE,mLAA2H;;ADwB/I,qBAAsB;EE7EpB,gBAAgB,E3C2oBY,OAAc;E2CxoB1C,uCAAoB;IDgDpB,gBAAgB,EAAE,2LAAmI;IACrJ,gBAAgB,EAAE,sLAA8H;IAChJ,gBAAgB,EAAE,mLAA2H;;AD4B/I,oBAAqB;EEjFnB,gBAAgB,E3C6oBY,OAAa;E2C1oBzC,sCAAoB;IDgDpB,gBAAgB,EAAE,2LAAmI;IACrJ,gBAAgB,EAAE,sLAA8H;IAChJ,gBAAgB,EAAE,mLAA2H;;AExD/I,MAAO;EAEL,UAAU,EAAE,IAAI;EAEhB,kBAAc;IACZ,UAAU,EAAE,CAAC;;AAIjB;WACY;EACV,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,MAAM;;AAGlB,WAAY;EACV,KAAK,EAAE,OAAO;;AAGhB,aAAc;EACZ,OAAO,EAAE,KAAK;;AAGhB;oBACqB;EACnB,YAAY,EAAE,IAAI;;AAGpB;mBACoB;EAClB,aAAa,EAAE,IAAI;;AAGrB;;WAEY;EACV,OAAO,EAAE,UAAU;EACnB,cAAc,EAAE,GAAG;;AAGrB,aAAc;EACZ,cAAc,EAAE,MAAM;;AAGxB,aAAc;EACZ,cAAc,EAAE,MAAM;;AAIxB,cAAe;EACb,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,GAAG;;AAMpB,WAAY;EACV,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;;AClDlB,WAAY;EAEV,aAAa,EAAE,IAAI;EACnB,YAAY,EAAE,CAAC;;AAQjB,gBAAiB;EACf,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,SAAS;EAElB,aAAa,EAAE,IAAI;EACnB,gBAAgB,E7CgoBc,IAAI;E6C/nBlC,MAAM,EAAE,cAA4B;EAGpC,4BAAc;IpB3Bd,uBAAuB,EzB2pBO,GAAmB;IyB1pBhD,sBAAsB,EzB0pBO,GAAmB;E6C7nBjD,2BAAa;IACX,aAAa,EAAE,CAAC;IpBvBlB,0BAA0B,EzBmpBI,GAAmB;IyBlpBhD,yBAAyB,EzBkpBI,GAAmB;;A6CjnBnD,iBAAkB;EAChB,KAAK,E7CqoByB,IAAsB;E6CnoBpD,0CAAyB;IACvB,KAAK,E7CmoBuB,IAAI;E6C/nBlC,gDACQ;IACN,eAAe,EAAE,IAAI;IACrB,KAAK,E7C2nBuB,IAAsB;I6C1nBlD,gBAAgB,E7CwmBY,OAAO;;A6ClmBrC,2FAEiB;EACf,gBAAgB,E7C2xBU,OAAa;E6C1xBvC,KAAK,E7CgxBqB,OAAW;E6C/wBrC,MAAM,E7C2JuB,WAAW;E6CxJxC,sKAAyB;IACvB,KAAK,EAAE,OAAO;EAEhB,6JAAsB;IACpB,KAAK,E7CwwBmB,OAAW;A6CnwBvC,qFAEe;EACb,OAAO,EAAE,CAAC;EACV,KAAK,E7C+kBuB,IAAuB;E6C9kBnD,gBAAgB,E7C8qBU,OAAW;E6C7qBrC,YAAY,E7C6qBc,OAAW;E6C1qBrC;;;;;;iEAEkC;IAChC,KAAK,EAAE,OAAO;EAEhB,uJAAsB;IACpB,KAAK,E7C0kBqB,OAAmC;;A8CtqBjE,wBAA2B;EACzB,KAAK,E9CysBqB,OAAmB;E8CxsB7C,gBAAgB,E9C0sBU,OAAiB;;A8CrsB7C,yBAA4B;EAC1B,KAAK,E9CksBqB,OAAmB;E8ChsB7C,kDAAyB;IACvB,KAAK,EAAE,OAAO;EAGhB,gEACQ;IACN,KAAK,E9C0rBmB,OAAmB;I8CzrB3C,gBAAgB,EAAE,OAAuB;EAE3C,gHAEe;IACb,KAAK,EAAE,IAAI;IACX,gBAAgB,E9CmrBQ,OAAmB;I8ClrB3C,YAAY,E9CkrBY,OAAmB;;A8C1sB/C,qBAA2B;EACzB,KAAK,E9C6sBqB,OAAgB;E8C5sB1C,gBAAgB,E9C8sBU,OAAc;;A8CzsB1C,sBAA4B;EAC1B,KAAK,E9CssBqB,OAAgB;E8CpsB1C,+CAAyB;IACvB,KAAK,EAAE,OAAO;EAGhB,0DACQ;IACN,KAAK,E9C8rBmB,OAAgB;I8C7rBxC,gBAAgB,EAAE,OAAuB;EAE3C,uGAEe;IACb,KAAK,EAAE,IAAI;IACX,gBAAgB,E9CurBQ,OAAgB;I8CtrBxC,YAAY,E9CsrBY,OAAgB;;A8C9sB5C,wBAA2B;EACzB,KAAK,E9CitBqB,OAAmB;E8ChtB7C,gBAAgB,E9CktBU,OAAiB;;A8C7sB7C,yBAA4B;EAC1B,KAAK,E9C0sBqB,OAAmB;E8CxsB7C,kDAAyB;IACvB,KAAK,EAAE,OAAO;EAGhB,gEACQ;IACN,KAAK,E9CksBmB,OAAmB;I8CjsB3C,gBAAgB,EAAE,OAAuB;EAE3C,gHAEe;IACb,KAAK,EAAE,IAAI;IACX,gBAAgB,E9C2rBQ,OAAmB;I8C1rB3C,YAAY,E9C0rBY,OAAmB;;A8CltB/C,uBAA2B;EACzB,KAAK,E9CqtBqB,OAAkB;E8CptB5C,gBAAgB,E9CstBU,OAAgB;;A8CjtB5C,wBAA4B;EAC1B,KAAK,E9C8sBqB,OAAkB;E8C5sB5C,iDAAyB;IACvB,KAAK,EAAE,OAAO;EAGhB,8DACQ;IACN,KAAK,E9CssBmB,OAAkB;I8CrsB1C,gBAAgB,EAAE,OAAuB;EAE3C,6GAEe;IACb,KAAK,EAAE,IAAI;IACX,gBAAgB,E9C+rBQ,OAAkB;I8C9rB1C,YAAY,E9C8rBY,OAAkB;;A6CrmBhD,wBAAyB;EACvB,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,GAAG;;AAEpB,qBAAsB;EACpB,aAAa,EAAE,CAAC;EAChB,WAAW,EAAE,GAAG;;AEpHlB,MAAO;EACL,aAAa,E/C6VoB,IAAqB;E+C5VtD,gBAAgB,E/CmrBY,IAAI;E+ClrBhC,MAAM,EAAE,qBAAqB;EAC7B,aAAa,E/CqrBe,GAAmB;ED3nB/C,kBAAkB,EAAE,6BAAO;EACnB,UAAU,EAAE,6BAAO;;AgDtD7B,WAAY;EACV,OAAO,E/C4qBqB,IAAI;EO/qBhC,qCACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,iBAAQ;IACN,KAAK,EAAE,IAAI;;AwCEf,cAAe;EACb,OAAO,E/CwqBqB,SAAsB;E+CvqBlD,aAAa,EAAE,qBAAqB;EtBpBpC,uBAAuB,EAAE,GAAO;EAC/B,sBAAsB,EAAE,GAAO;EsBsBhC,2CAA6B;IAC3B,KAAK,EAAE,OAAO;;AAKlB,YAAa;EACX,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAChB,SAAS,EAAE,IAA+B;EAC1C,KAAK,EAAE,OAAO;EAEd;;;;2BAIa;IACX,KAAK,EAAE,OAAO;;AAKlB,aAAc;EACZ,OAAO,E/C6oBqB,SAAsB;E+C5oBlD,gBAAgB,E/CipBY,OAAO;E+ChpBnC,UAAU,EAAE,cAA6B;EtBxCzC,0BAA0B,EAAE,GAAO;EAClC,yBAAyB,EAAE,GAAO;;AsBkDnC;sCACgC;EAC9B,aAAa,EAAE,CAAC;EAEhB;yDAAiB;IACf,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,CAAC;EAKhB;iFAA6B;IAC3B,UAAU,EAAE,CAAC;ItBvEnB,uBAAuB,EAAE,GAAO;IAC/B,sBAAsB,EAAE,GAAO;EsB4E5B;+EAA4B;IAC1B,aAAa,EAAE,CAAC;ItBtEtB,0BAA0B,EAAE,GAAO;IAClC,yBAAyB,EAAE,GAAO;;AsB6EnC,yDAA6B;EAC3B,gBAAgB,EAAE,CAAC;;AAGvB,2BAA4B;EAC1B,gBAAgB,EAAE,CAAC;;AASnB;;iCAE2B;EACzB,aAAa,EAAE,CAAC;EAEhB;;2CAAQ;IACN,YAAY,E/C+kBY,IAAI;I+C9kB5B,aAAa,E/C8kBW,IAAI;A+C1kBhC;2DACqD;EtBhHrD,uBAAuB,EAAE,GAAO;EAC/B,sBAAsB,EAAE,GAAO;EsBoH5B;;;kGAAiB;IACf,sBAAsB,EAAE,GAA0B;IAClD,uBAAuB,EAAE,GAA0B;IAEnD;;;;;;;mHACe;MACb,sBAAsB,EAAE,GAA0B;IAEpD;;;;;;;kHACc;MACZ,uBAAuB,EAAE,GAA0B;AAM3D;yDACmD;EtB9HnD,0BAA0B,EAAE,GAAO;EAClC,yBAAyB,EAAE,GAAO;EsBkI/B;;;8FAAgB;IACd,yBAAyB,EAAE,GAA0B;IACrD,0BAA0B,EAAE,GAA0B;IAEtD;;;;;;;+GACe;MACb,yBAAyB,EAAE,GAA0B;IAEvD;;;;;;;8GACc;MACZ,0BAA0B,EAAE,GAA0B;AAK9D;;;wCAGkC;EAChC,UAAU,EAAE,cAA6B;AAE3C;uDACiD;EAC/C,UAAU,EAAE,CAAC;AAEf;4CACsC;EACpC,MAAM,EAAE,CAAC;EAKL;;;;;;;;;;;4EACiB;IACf,WAAW,EAAE,CAAC;EAEhB;;;;;;;;;;;2EACgB;IACd,YAAY,EAAE,CAAC;EAOjB;;;;;;;4EACK;IACH,aAAa,EAAE,CAAC;EAOlB;;;;;;;2EACK;IACH,aAAa,EAAE,CAAC;AAKxB,0BAAoB;EAClB,MAAM,EAAE,CAAC;EACT,aAAa,EAAE,CAAC;;AAUpB,YAAa;EACX,aAAa,E/C4IoB,IAAqB;E+CzItD,mBAAO;IACL,aAAa,EAAE,CAAC;IAChB,aAAa,E/Ckea,GAAmB;I+Che7C,4BAAS;MACP,UAAU,EAAE,GAAG;EAInB,2BAAe;IACb,aAAa,EAAE,CAAC;IAEhB;+DACgC;MAC9B,UAAU,EAAE,cAA6B;EAI7C,0BAAc;IACZ,UAAU,EAAE,CAAC;IACb,wDAA8B;MAC5B,aAAa,EAAE,cAA6B;;AAOlD,cAAe;ECpPb,YAAY,EhDmsBgB,IAAI;EgDjsBhC,+BAAmB;IACjB,KAAK,EhD2zBqB,OAAU;IgD1zBpC,gBAAgB,EhDgsBU,OAAO;IgD/rBjC,YAAY,EhD8rBc,IAAI;IgD5rB9B,+DAAgC;MAC9B,gBAAgB,EhD2rBQ,IAAI;IgDzrB9B,sCAAO;MACL,KAAK,EhDyrBmB,OAAO;MgDxrB/B,gBAAgB,EhDkzBQ,OAAU;EgD9yBpC,8DAAgC;IAC9B,mBAAmB,EhDkrBK,IAAI;;A+C5clC,cAAe;ECvPb,YAAY,EhDgwBgB,OAAW;EgD9vBvC,+BAAmB;IACjB,KAAK,EhDmsBqB,IAAI;IgDlsB9B,gBAAgB,EhD4vBU,OAAW;IgD3vBrC,YAAY,EhD2vBc,OAAW;IgDzvBrC,+DAAgC;MAC9B,gBAAgB,EhDwvBQ,OAAW;IgDtvBrC,sCAAO;MACL,KAAK,EhDqvBmB,OAAW;MgDpvBnC,gBAAgB,EhD0rBQ,IAAI;EgDtrB9B,8DAAgC;IAC9B,mBAAmB,EhD+uBK,OAAW;;A+CtgBzC,cAAe;EC1Pb,YAAY,EhD2sBgB,OAAqB;EgDzsBjD,+BAAmB;IACjB,KAAK,EhDusBqB,OAAmB;IgDtsB7C,gBAAgB,EhDwsBU,OAAiB;IgDvsB3C,YAAY,EhDssBc,OAAqB;IgDpsB/C,+DAAgC;MAC9B,gBAAgB,EhDmsBQ,OAAqB;IgDjsB/C,sCAAO;MACL,KAAK,EhDisBmB,OAAiB;MgDhsBzC,gBAAgB,EhD8rBQ,OAAmB;EgD1rB7C,8DAAgC;IAC9B,mBAAmB,EhD0rBK,OAAqB;;A+C9cnD,WAAY;EC7PV,YAAY,EhD+sBgB,OAAkB;EgD7sB9C,4BAAmB;IACjB,KAAK,EhD2sBqB,OAAgB;IgD1sB1C,gBAAgB,EhD4sBU,OAAc;IgD3sBxC,YAAY,EhD0sBc,OAAkB;IgDxsB5C,4DAAgC;MAC9B,gBAAgB,EhDusBQ,OAAkB;IgDrsB5C,mCAAO;MACL,KAAK,EhDqsBmB,OAAc;MgDpsBtC,gBAAgB,EhDksBQ,OAAgB;EgD9rB1C,2DAAgC;IAC9B,mBAAmB,EhD8rBK,OAAkB;;A+C/chD,cAAe;EChQb,YAAY,EhDmtBgB,OAAqB;EgDjtBjD,+BAAmB;IACjB,KAAK,EhD+sBqB,OAAmB;IgD9sB7C,gBAAgB,EhDgtBU,OAAiB;IgD/sB3C,YAAY,EhD8sBc,OAAqB;IgD5sB/C,+DAAgC;MAC9B,gBAAgB,EhD2sBQ,OAAqB;IgDzsB/C,sCAAO;MACL,KAAK,EhDysBmB,OAAiB;MgDxsBzC,gBAAgB,EhDssBQ,OAAmB;EgDlsB7C,8DAAgC;IAC9B,mBAAmB,EhDksBK,OAAqB;;A+ChdnD,aAAc;ECnQZ,YAAY,EhDutBgB,OAAoB;EgDrtBhD,8BAAmB;IACjB,KAAK,EhDmtBqB,OAAkB;IgDltB5C,gBAAgB,EhDotBU,OAAgB;IgDntB1C,YAAY,EhDktBc,OAAoB;IgDhtB9C,8DAAgC;MAC9B,gBAAgB,EhD+sBQ,OAAoB;IgD7sB9C,qCAAO;MACL,KAAK,EhD6sBmB,OAAgB;MgD5sBxC,gBAAgB,EhD0sBQ,OAAkB;EgDtsB5C,6DAAgC;IAC9B,mBAAmB,EhDssBK,OAAoB;;AiDttBlD,iBAAkB;EAChB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,MAAM;EAEhB;;;;yBAIM;IACJ,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,CAAC;EAIX,wCAAyB;IACvB,cAAc,EAAE,MAAM;EAIxB,uCAAwB;IACtB,cAAc,EAAE,GAAG;;AC1BvB,KAAM;EACJ,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,IAAI;EACnB,gBAAgB,ElD2uBY,OAAO;EkD1uBnC,MAAM,EAAE,iBAAsB;EAC9B,aAAa,ElDiGa,GAAG;EDzC7B,kBAAkB,EAAE,mCAAO;EACnB,UAAU,EAAE,mCAAO;EmDvD3B,gBAAW;IACT,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,mBAAe;;AAKjC,QAAS;EACP,OAAO,EAAE,IAAI;EACb,aAAa,ElDuFa,GAAG;;AkDrF/B,QAAS;EACP,OAAO,EAAE,GAAG;EACZ,aAAa,ElDoFa,GAAG;;AmD1G/B,MAAO;EACL,KAAK,EAAE,KAAK;EACZ,SAAS,EAAE,IAAuB;EAClC,WAAW,EnDyyBiB,IAAI;EmDxyBhC,WAAW,EAAE,CAAC;EACd,KAAK,EnDwyBuB,IAAI;EmDvyBhC,WAAW,EnDwyBiB,YAAa;EmBhzBzC,OAAO,EgCSU,GAAE;EhCNnB,MAAM,EAAE,iBAA0B;EgCQlC,0BACQ;IACN,KAAK,EnDkyBqB,IAAI;ImDjyB9B,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,OAAO;IhCfjB,OAAO,EgCgBY,GAAE;IhCbrB,MAAM,EAAE,iBAA0B;;AgCuBpC,YAAa;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;EACT,kBAAkB,EAAE,IAAI;;ACxB1B,WAAY;EACV,QAAQ,EAAE,MAAM;;AAIlB,MAAO;EACL,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,OAAO,EpD0PkB,IAAI;EoDzP7B,0BAA0B,EAAE,KAAK;EAIjC,OAAO,EAAE,CAAC;EAGV,yBAAqB;IrD0GrB,iBAAiB,EAAE,kBAAiB;IAChC,aAAa,EAAE,kBAAiB;IAC/B,YAAY,EAAE,kBAAiB;IAC5B,SAAS,EAAE,kBAAiB;IAkEpC,kBAAkB,EAAE,+BAA6B;IAC9C,eAAe,EAAE,4BAA0B;IACzC,aAAa,EAAE,0BAAwB;IACpC,UAAU,EAAE,uBAAqB;EqD9KzC,uBAAmB;IrDsGnB,iBAAiB,EAAE,eAAiB;IAChC,aAAa,EAAE,eAAiB;IAC/B,YAAY,EAAE,eAAiB;IAC5B,SAAS,EAAE,eAAiB;;AqDvGtC,kBAAmB;EACjB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;;AAIlB,aAAc;EACZ,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;;AAId,cAAe;EACb,QAAQ,EAAE,QAAQ;EAClB,gBAAgB,EpD6hB6B,IAAI;EoD5hBjD,MAAM,EAAE,cAA8C;EACtD,MAAM,EAAE,4BAAqC;EAC7C,aAAa,EpDuDa,GAAG;ED1C7B,kBAAkB,EAAE,4BAAO;EACnB,UAAU,EAAE,4BAAO;EqDZ3B,eAAe,EAAE,WAAW;EAE5B,OAAO,EAAE,CAAC;;AAIZ,eAAgB;EACd,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,CAAC;EACP,gBAAgB,EpDohBY,IAAI;EoDlhBhC,oBAAO;IjCnEP,OAAO,EiCmEmB,CAAC;IjChE3B,MAAM,EAAE,gBAA0B;EiCiElC,kBAAK;IjCpEL,OAAO,EnBulBqB,GAAE;ImBplB9B,MAAM,EAAE,iBAA0B;;AiCsEpC,aAAc;EACZ,OAAO,EpD+fqB,IAAI;EoD9fhC,aAAa,EAAE,iBAAoC;EACnD,UAAU,EAAE,MAAiD;;AAG/D,oBAAqB;EACnB,UAAU,EAAE,IAAI;;AAIlB,YAAa;EACX,MAAM,EAAE,CAAC;EACT,WAAW,EpDqfiB,GAAiB;;AoDhf/C,WAAY;EACV,QAAQ,EAAE,QAAQ;EAClB,OAAO,EpDyeqB,IAAI;;AoDrelC,aAAc;EACZ,OAAO,EpDoeqB,IAAI;EoDnehC,UAAU,EAAE,KAAK;EACjB,UAAU,EAAE,iBAAoC;E7C1FhD,yCACQ;IACN,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;EAEhB,mBAAQ;IACN,KAAK,EAAE,IAAI;E6CwFb,yBAAY;IACV,WAAW,EAAE,GAAG;IAChB,aAAa,EAAE,CAAC;EAGlB,oCAAuB;IACrB,WAAW,EAAE,IAAI;EAGnB,qCAAwB;IACtB,WAAW,EAAE,CAAC;;AAKlB,wBAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,OAAO;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;;AAIlB,yBAAmC;EAEjC,aAAc;IACZ,KAAK,EpD2dqB,KAAK;IoD1d/B,MAAM,EAAE,SAAS;;EAEnB,cAAe;IrDrEf,kBAAkB,EAAE,6BAAO;IACnB,UAAU,EAAE,6BAAO;;EqDyE3B,SAAU;IAAE,KAAK,EpDodW,KAAK;AoDjdnC,yBAAmC;EACjC,SAAU;IAAE,KAAK,EpD8cW,KAAK;AqD1lBnC,QAAS;EACP,QAAQ,EAAE,QAAQ;EAClB,OAAO,ErDuQkB,IAAI;EqDtQ7B,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,OAAO;EAEnB,WAAW,ErDqCa,wBAAuB;EqDpC/C,SAAS,ErDwCe,IAA8B;EqDvCtD,WAAW,EAAE,MAAM;EACnB,WAAW,EAAE,GAAG;ElCZhB,OAAO,EkCaU,CAAC;ElCVlB,MAAM,EAAE,gBAA0B;EkCYlC,WAAS;IlCfT,OAAO,EnBqgBqB,GAAE;ImBlgB9B,MAAM,EAAE,iBAA0B;EkCalC,YAAS;IAAE,UAAU,EAAG,IAAI;IAAE,OAAO,EAAE,KAAsB;EAC7D,cAAS;IAAE,WAAW,EAAG,GAAG;IAAE,OAAO,EAAE,KAAsB;EAC7D,eAAS;IAAE,UAAU,EAAI,GAAG;IAAE,OAAO,EAAE,KAAsB;EAC7D,aAAS;IAAE,WAAW,EAAE,IAAI;IAAE,OAAO,EAAE,KAAsB;;AAI/D,cAAe;EACb,SAAS,ErDwemB,KAAK;EqDvejC,OAAO,EAAE,OAAO;EAChB,KAAK,ErDweuB,IAAI;EqDvehC,UAAU,EAAE,MAAM;EAClB,eAAe,EAAE,IAAI;EACrB,gBAAgB,ErD6eY,IAAW;EqD5evC,aAAa,ErD4Ea,GAAG;;AqDxE/B,cAAe;EACb,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,YAAY,EAAE,WAAW;EACzB,YAAY,EAAE,KAAK;;AAInB,2BAAqB;EACnB,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,IAAqB;EAClC,YAAY,EAAE,SAA2C;EACzD,gBAAgB,ErD0dU,IAAW;AqDxdvC,gCAA0B;EACxB,MAAM,EAAE,CAAC;EACT,KAAK,ErDodqB,GAAG;EqDnd7B,aAAa,EAAE,IAAqB;EACpC,YAAY,EAAE,SAA2C;EACzD,gBAAgB,ErDmdU,IAAW;AqDjdvC,iCAA2B;EACzB,MAAM,EAAE,CAAC;EACT,IAAI,ErD6csB,GAAG;EqD5c7B,aAAa,EAAE,IAAqB;EACpC,YAAY,EAAE,SAA2C;EACzD,gBAAgB,ErD4cU,IAAW;AqD1cvC,6BAAuB;EACrB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,CAAC;EACP,UAAU,EAAE,IAAqB;EACjC,YAAY,EAAE,aAAgE;EAC9E,kBAAkB,ErDqcQ,IAAW;AqDncvC,4BAAsB;EACpB,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,CAAC;EACR,UAAU,EAAE,IAAqB;EACjC,YAAY,EAAE,aAAgE;EAC9E,iBAAiB,ErD8bS,IAAW;AqD5bvC,8BAAwB;EACtB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,IAAqB;EAClC,YAAY,EAAE,SAA2C;EACzD,mBAAmB,ErDubO,IAAW;AqDrbvC,mCAA6B;EAC3B,GAAG,EAAE,CAAC;EACN,KAAK,ErDibqB,GAAG;EqDhb7B,UAAU,EAAE,IAAqB;EACjC,YAAY,EAAE,SAA2C;EACzD,mBAAmB,ErDgbO,IAAW;AqD9avC,oCAA8B;EAC5B,GAAG,EAAE,CAAC;EACN,IAAI,ErD0asB,GAAG;EqDza7B,UAAU,EAAE,IAAqB;EACjC,YAAY,EAAE,SAA2C;EACzD,mBAAmB,ErDyaO,IAAW;;AsDxgBzC,QAAS;EACP,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,OAAO,EtDqQkB,IAAI;EsDpQ7B,OAAO,EAAE,IAAI;EACb,SAAS,EtD4gB2B,KAAK;EsD3gBzC,OAAO,EAAE,GAAG;EAEZ,WAAW,EtDmCa,wBAAuB;EsDlC/C,SAAS,ErDXiB,IAAI;EqDY9B,WAAW,EAAE,MAAM;EACnB,WAAW,ErDZe,GAAG;EqDa7B,UAAU,EAAE,IAAI;EAChB,gBAAgB,EtDghBoB,IAAW;EsD/gB/C,eAAe,EAAE,WAAW;EAC5B,MAAM,EAAE,cAAwC;EAChD,MAAM,EAAE,4BAA+B;EACvC,aAAa,EtDuFa,GAAG;ED1C7B,kBAAkB,EAAE,6BAAO;EACnB,UAAU,EAAE,6BAAO;EuD1C3B,WAAW,EAAE,MAAM;EAGnB,YAAU;IAAE,UAAU,EAAE,KAAqB;EAC7C,cAAU;IAAE,WAAW,EtDkgBa,IAAI;EsDjgBxC,eAAU;IAAE,UAAU,EtDigBc,IAAI;EsDhgBxC,aAAU;IAAE,WAAW,EAAE,KAAqB;;AAGhD,cAAe;EACb,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,QAAQ;EACjB,SAAS,ErDnCiB,IAAI;EqDoC9B,gBAAgB,EtDsfoB,OAAuB;EsDrf3D,aAAa,EAAE,iBAAuC;EACtD,aAAa,EAAE,WAAyD;;AAG1E,gBAAiB;EACf,OAAO,EAAE,QAAQ;;AAQjB,0CACQ;EACN,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,YAAY,EAAE,WAAW;EACzB,YAAY,EAAE,KAAK;;AAGvB,iBAAkB;EAChB,YAAY,EtDqeyB,IAAwB;;AsDne/D,uBAAwB;EACtB,YAAY,EtD6dwB,IAAI;EsD5dxC,OAAO,EAAE,EAAE;;AAIX,qBAAe;EACb,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,KAA2B;EACxC,mBAAmB,EAAE,CAAC;EACtB,gBAAgB,EtD6dkB,OAA2C;EsD5d7E,gBAAgB,EtD0dkB,mBAAoC;EsDzdtE,MAAM,EAAE,KAA2B;EACnC,2BAAQ;IACN,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,WAAW,EAAE,KAAqB;IAClC,mBAAmB,EAAE,CAAC;IACtB,gBAAgB,EtD8cgB,IAAW;AsD3c/C,uBAAiB;EACf,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,KAA2B;EACjC,UAAU,EAAE,KAA2B;EACvC,iBAAiB,EAAE,CAAC;EACpB,kBAAkB,EtD6cgB,OAA2C;EsD5c7E,kBAAkB,EtD0cgB,mBAAoC;EsDzctE,6BAAQ;IACN,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,KAAqB;IAC7B,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EtD+bc,IAAW;AsD5b/C,wBAAkB;EAChB,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,KAA2B;EACxC,gBAAgB,EAAE,CAAC;EACnB,mBAAmB,EtD+be,OAA2C;EsD9b7E,mBAAmB,EtD4be,mBAAoC;EsD3btE,GAAG,EAAE,KAA2B;EAChC,8BAAQ;IACN,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,GAAG;IACR,WAAW,EAAE,KAAqB;IAClC,gBAAgB,EAAE,CAAC;IACnB,mBAAmB,EtDgba,IAAW;AsD5a/C,sBAAgB;EACd,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAA2B;EAClC,UAAU,EAAE,KAA2B;EACvC,kBAAkB,EAAE,CAAC;EACrB,iBAAiB,EtD8aiB,OAA2C;EsD7a7E,iBAAiB,EtD2aiB,mBAAoC;EsD1atE,4BAAQ;IACN,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,kBAAkB,EAAE,CAAC;IACrB,iBAAiB,EtDiae,IAAW;IsDha3C,MAAM,EAAE,KAAqB;;AC7HnC,SAAU;EACR,QAAQ,EAAE,QAAQ;;AAGpB,eAAgB;EACd,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;EAEX,uBAAQ;IACN,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,QAAQ;IxDwKpB,kBAAkB,EAAE,qBAAW;IAC1B,aAAa,EAAE,qBAAW;IACvB,UAAU,EAAE,qBAAW;IwDtK7B;qCACU;MpDbZ,OAAO,EADuB,KAAK;MAEnC,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,IAAI;MoDaR,WAAW,EAAE,CAAC;IAIhB,qDAAsD;MAbxD,uBAAQ;QxD+LR,kBAAkB,EAAE,kCAA6B;QAC9C,eAAe,EAAE,+BAA0B;QACzC,aAAa,EAAE,6BAAwB;QACpC,UAAU,EAAE,0BAAqB;QAxJzC,2BAA2B,EwD3BM,MAAM;QxD4BpC,wBAAwB,EwD5BM,MAAM;QxD6B/B,mBAAmB,EwD7BM,MAAM;QxDuIvC,mBAAmB,EwDtIM,IAAI;QxDuI1B,gBAAgB,EwDvIM,IAAI;QxDwIrB,WAAW,EwDxIM,IAAI;QAEzB,kEACe;UxD6GnB,iBAAiB,EAAE,uBAAuB;UAClC,SAAS,EAAE,uBAAuB;UwD5GpC,IAAI,EAAE,CAAC;QAET,iEACc;UxDwGlB,iBAAiB,EAAE,wBAAuB;UAClC,SAAS,EAAE,wBAAuB;UwDvGpC,IAAI,EAAE,CAAC;QAET,qGAES;UxDkGb,iBAAiB,EAAE,oBAAuB;UAClC,SAAS,EAAE,oBAAuB;UwDjGpC,IAAI,EAAE,CAAC;EAKb;;yBAEQ;IACN,OAAO,EAAE,KAAK;EAGhB,yBAAU;IACR,IAAI,EAAE,CAAC;EAGT;yBACQ;IACN,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI;EAGb,uBAAQ;IACN,IAAI,EAAE,IAAI;EAEZ,uBAAQ;IACN,IAAI,EAAE,KAAK;EAEb;+BACc;IACZ,IAAI,EAAE,CAAC;EAGT,8BAAe;IACb,IAAI,EAAE,KAAK;EAEb,+BAAgB;IACd,IAAI,EAAE,IAAI;;AAQd,iBAAkB;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,CAAC;EACT,KAAK,EvDksBuC,GAAG;EmBhyB/C,OAAO,EnBiyBqC,GAAE;EmB9xB9C,MAAM,EAAE,iBAA0B;EoC6FlC,SAAS,EvDksBmC,IAAI;EuDjsBhD,KAAK,EvD8rBuC,IAAI;EuD7rBhD,UAAU,EAAE,MAAM;EAClB,WAAW,EvD0rBiC,4BAAyB;EuDrrBrE,sBAAO;IblGP,gBAAgB,EAAE,gFAAmF;IACrG,gBAAgB,EAAE,2EAA8E;IAChG,gBAAgB,EAAE,4EAA+E;IACjG,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,8GAAgJ;EaiGxJ,uBAAQ;IACN,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,CAAC;IbvGV,gBAAgB,EAAE,gFAAmF;IACrG,gBAAgB,EAAE,2EAA8E;IAChG,gBAAgB,EAAE,4EAA+E;IACjG,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,8GAAgJ;EawGxJ,gDACQ;IACN,OAAO,EAAE,CAAC;IACV,KAAK,EvD0qBqC,IAAI;IuDzqB9C,eAAe,EAAE,IAAI;IpCtHvB,OAAO,EoCuHY,GAAE;IpCpHrB,MAAM,EAAE,iBAA0B;EoCwHlC;;;4CAGyB;IACvB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,YAAY;EAEvB;2CACwB;IACtB,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,KAAK;EAEpB;4CACyB;IACvB,KAAK,EAAE,GAAG;IACV,YAAY,EAAE,KAAK;EAErB;8BACW;IACT,KAAK,EAAG,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,KAAK;EAKlB,mCAAS;IACP,OAAO,EAAE,OAAO;EAIlB,mCAAS;IACP,OAAO,EAAE,OAAO;;AAUtB,oBAAqB;EACnB,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,GAAG;EACT,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,GAAG;EACV,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAElB,uBAAG;IACD,OAAO,EAAE,YAAY;IACrB,KAAK,EAAG,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,cAA0C;IAClD,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,OAAO;IAWf,gBAAgB,EAAE,OAAO;IACzB,gBAAgB,EAAE,WAAa;EAEjC,4BAAQ;IACN,MAAM,EAAE,CAAC;IACT,KAAK,EAAG,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,gBAAgB,EvDslB0B,IAAI;;AuD/kBlD,iBAAkB;EAChB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,GAAG;EACT,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,EAAE;EACX,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB,KAAK,EvD0kBuC,IAAI;EuDzkBhD,UAAU,EAAE,MAAM;EAClB,WAAW,EvD8jBiC,4BAAyB;EuD7jBrE,sBAAO;IACL,WAAW,EAAE,IAAI;;AAMrB,oCAA8C;EAI1C;;;8BAGW;IACT,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,IAAI;EAEjB;8BACW;IACT,WAAW,EAAE,KAAK;EAEpB;8BACW;IACT,YAAY,EAAE,KAAK;;EAKvB,iBAAkB;IAChB,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,cAAc,EAAE,IAAI;;EAItB,oBAAqB;IACnB,MAAM,EAAE,IAAI;AhD7Pd,iCACQ;EACN,OAAO,EAAE,GAAG;EACZ,OAAO,EAAE,KAAK;AAEhB,eAAQ;EACN,KAAK,EAAE,IAAI;;AiDRf,aAAc;ECRZ,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;;ADSpB,WAAY;EACV,KAAK,EAAE,gBAAgB;;AAEzB,UAAW;EACT,KAAK,EAAE,eAAe;;AAQxB,KAAM;EACJ,OAAO,EAAE,eAAe;;AAE1B,KAAM;EACJ,OAAO,EAAE,gBAAgB;;AAE3B,UAAW;EACT,UAAU,EAAE,MAAM;;AAEpB,UAAW;EEzBT,IAAI,EAAE,KAAK;EACX,KAAK,EAAE,WAAW;EAClB,WAAW,EAAE,IAAI;EACjB,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;;AF8BX,OAAQ;EACN,OAAO,EAAE,eAAe;EACxB,UAAU,EAAE,iBAAiB;;AAO/B,MAAO;EACL,QAAQ,EAAE,KAAK;;AGlCjB,aAEC;EADC,KAAK,EAAE,YAAY;ACJnB,WAAW;EACT,OAAO,EAAE,eAAe;;AAD1B,WAAW;EACT,OAAO,EAAE,eAAe;;AAD1B,WAAW;EACT,OAAO,EAAE,eAAe;;AAD1B,WAAW;EACT,OAAO,EAAE,eAAe;;ADe5B;;;;;;;;;;;wBAWyB;EACvB,OAAO,EAAE,eAAe;;AAG1B,yBAAmC;EC1CjC,WAAW;IACT,OAAO,EAAE,gBAAgB;;EAE3B,gBAAiB;IAAE,OAAO,EAAE,KAAK;;EACjC,aAAiB;IAAE,OAAO,EAAE,oBAAoB;;EAChD;eACiB;IAAE,OAAO,EAAE,qBAAqB;ADwCjD,yBAAmC;EADrC,iBAAkB;IAEd,OAAO,EAAE,gBAAgB;;AAI3B,yBAAmC;EADrC,kBAAmB;IAEf,OAAO,EAAE,iBAAiB;;AAI5B,yBAAmC;EADrC,wBAAyB;IAErB,OAAO,EAAE,uBAAuB;;AAIpC,gDAAmE;EC7DjE,WAAW;IACT,OAAO,EAAE,gBAAgB;;EAE3B,gBAAiB;IAAE,OAAO,EAAE,KAAK;;EACjC,aAAiB;IAAE,OAAO,EAAE,oBAAoB;;EAChD;eACiB;IAAE,OAAO,EAAE,qBAAqB;AD2DjD,gDAAmE;EADrE,iBAAkB;IAEd,OAAO,EAAE,gBAAgB;;AAI3B,gDAAmE;EADrE,kBAAmB;IAEf,OAAO,EAAE,iBAAiB;;AAI5B,gDAAmE;EADrE,wBAAyB;IAErB,OAAO,EAAE,uBAAuB;;AAIpC,iDAAmE;EChFjE,WAAW;IACT,OAAO,EAAE,gBAAgB;;EAE3B,gBAAiB;IAAE,OAAO,EAAE,KAAK;;EACjC,aAAiB;IAAE,OAAO,EAAE,oBAAoB;;EAChD;eACiB;IAAE,OAAO,EAAE,qBAAqB;AD8EjD,iDAAmE;EADrE,iBAAkB;IAEd,OAAO,EAAE,gBAAgB;;AAI3B,iDAAmE;EADrE,kBAAmB;IAEf,OAAO,EAAE,iBAAiB;;AAI5B,iDAAmE;EADrE,wBAAyB;IAErB,OAAO,EAAE,uBAAuB;;AAIpC,0BAAmC;ECnGjC,WAAW;IACT,OAAO,EAAE,gBAAgB;;EAE3B,gBAAiB;IAAE,OAAO,EAAE,KAAK;;EACjC,aAAiB;IAAE,OAAO,EAAE,oBAAoB;;EAChD;eACiB;IAAE,OAAO,EAAE,qBAAqB;ADiGjD,0BAAmC;EADrC,iBAAkB;IAEd,OAAO,EAAE,gBAAgB;;AAI3B,0BAAmC;EADrC,kBAAmB;IAEf,OAAO,EAAE,iBAAiB;;AAI5B,0BAAmC;EADrC,wBAAyB;IAErB,OAAO,EAAE,uBAAuB;;AAIpC,yBAAmC;EC3GjC,UAAW;IACT,OAAO,EAAE,eAAe;AD8G5B,gDAAmE;EC/GjE,UAAW;IACT,OAAO,EAAE,eAAe;ADkH5B,iDAAmE;ECnHjE,UAAW;IACT,OAAO,EAAE,eAAe;ADsH5B,0BAAmC;ECvHjC,UAAW;IACT,OAAO,EAAE,eAAe;AAD1B,cAAW;EACT,OAAO,EAAE,eAAe;;ADmI5B,YAAa;EC/IX,cAAW;IACT,OAAO,EAAE,gBAAgB;;EAE3B,mBAAiB;IAAE,OAAO,EAAE,KAAK;;EACjC,gBAAiB;IAAE,OAAO,EAAE,oBAAoB;;EAChD;kBACiB;IAAE,OAAO,EAAE,qBAAqB;AD4InD,oBAAqB;EACnB,OAAO,EAAE,eAAe;EAExB,YAAa;IAHf,oBAAqB;MAIjB,OAAO,EAAE,gBAAgB;;AAG7B,qBAAsB;EACpB,OAAO,EAAE,eAAe;EAExB,YAAa;IAHf,qBAAsB;MAIlB,OAAO,EAAE,iBAAiB;;AAG9B,2BAA4B;EAC1B,OAAO,EAAE,eAAe;EAExB,YAAa;IAHf,2BAA4B;MAIxB,OAAO,EAAE,uBAAuB;;AAIpC,YAAa;EC7JX,aAAW;IACT,OAAO,EAAE,eAAe",
+"sources": ["../scss/bootstrap/_normalize.scss","../scss/bootstrap/_print.scss","../scss/bootstrap/_glyphicons.scss","../scss/bootstrap/_scaffolding.scss","../scss/bootstrap/mixins/_vendor-prefixes.scss","../scss/bootstrap/_variables.scss","../scss/_bootstrap-custom.scss","../scss/bootstrap/mixins/_tab-focus.scss","../scss/bootstrap/mixins/_image.scss","../scss/bootstrap/_type.scss","../scss/bootstrap/mixins/_text-emphasis.scss","../scss/bootstrap/mixins/_background-variant.scss","../scss/bootstrap/mixins/_clearfix.scss","../scss/bootstrap/mixins/_text-overflow.scss","../scss/bootstrap/_code.scss","../scss/bootstrap/_grid.scss","../scss/bootstrap/mixins/_grid.scss","../scss/bootstrap/mixins/_grid-framework.scss","../scss/bootstrap/_tables.scss","../scss/bootstrap/mixins/_table-row.scss","../scss/bootstrap/_forms.scss","../scss/bootstrap/mixins/_forms.scss","../scss/bootstrap/_buttons.scss","../scss/bootstrap/mixins/_buttons.scss","../scss/bootstrap/mixins/_opacity.scss","../scss/bootstrap/_component-animations.scss","../scss/bootstrap/_dropdowns.scss","../scss/bootstrap/mixins/_nav-divider.scss","../scss/bootstrap/mixins/_reset-filter.scss","../scss/bootstrap/_button-groups.scss","../scss/bootstrap/mixins/_border-radius.scss","../scss/bootstrap/_input-groups.scss","../scss/bootstrap/_navs.scss","../scss/bootstrap/_navbar.scss","../scss/bootstrap/mixins/_nav-vertical-align.scss","../scss/bootstrap/_breadcrumbs.scss","../scss/bootstrap/_pagination.scss","../scss/bootstrap/mixins/_pagination.scss","../scss/bootstrap/_pager.scss","../scss/bootstrap/_labels.scss","../scss/bootstrap/mixins/_labels.scss","../scss/bootstrap/_badges.scss","../scss/bootstrap/_jumbotron.scss","../scss/bootstrap/_thumbnails.scss","../scss/bootstrap/_alerts.scss","../scss/bootstrap/mixins/_alerts.scss","../scss/bootstrap/_progress-bars.scss","../scss/bootstrap/mixins/_gradients.scss","../scss/bootstrap/mixins/_progress-bar.scss","../scss/bootstrap/_media.scss","../scss/bootstrap/_list-group.scss","../scss/bootstrap/mixins/_list-group.scss","../scss/bootstrap/_panels.scss","../scss/bootstrap/mixins/_panels.scss","../scss/bootstrap/_responsive-embed.scss","../scss/bootstrap/_wells.scss","../scss/bootstrap/_close.scss","../scss/bootstrap/_modals.scss","../scss/bootstrap/_tooltip.scss","../scss/bootstrap/_popovers.scss","../scss/bootstrap/_carousel.scss","../scss/bootstrap/_utilities.scss","../scss/bootstrap/mixins/_center-block.scss","../scss/bootstrap/mixins/_hide-text.scss","../scss/bootstrap/_responsive-utilities.scss","../scss/bootstrap/mixins/_responsive-visibility.scss"],
+"names": [],
+"file": "bootstrap.css"
+}
\ No newline at end of file
diff --git a/favicons/favicon-16x16.png b/favicons/favicon-16x16.png
new file mode 100644
index 00000000..3ec0776d
Binary files /dev/null and b/favicons/favicon-16x16.png differ
diff --git a/favicons/favicon-194x194.png b/favicons/favicon-194x194.png
new file mode 100644
index 00000000..62553dc5
Binary files /dev/null and b/favicons/favicon-194x194.png differ
diff --git a/favicons/favicon-32x32.png b/favicons/favicon-32x32.png
new file mode 100644
index 00000000..8c74aa35
Binary files /dev/null and b/favicons/favicon-32x32.png differ
diff --git a/favicons/favicon-96x96.png b/favicons/favicon-96x96.png
new file mode 100644
index 00000000..94cd4215
Binary files /dev/null and b/favicons/favicon-96x96.png differ
diff --git a/favicons/favicon.png b/favicons/favicon.png
new file mode 100644
index 00000000..82f34a98
Binary files /dev/null and b/favicons/favicon.png differ
diff --git a/fonts/.DS_Store b/fonts/.DS_Store
new file mode 100644
index 00000000..0863846f
Binary files /dev/null and b/fonts/.DS_Store differ
diff --git a/fonts/bootstrap/glyphicons-halflings-regular.eot b/fonts/bootstrap/glyphicons-halflings-regular.eot
new file mode 100644
index 00000000..b93a4953
Binary files /dev/null and b/fonts/bootstrap/glyphicons-halflings-regular.eot differ
diff --git a/fonts/bootstrap/glyphicons-halflings-regular.svg b/fonts/bootstrap/glyphicons-halflings-regular.svg
new file mode 100644
index 00000000..94fb5490
--- /dev/null
+++ b/fonts/bootstrap/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fonts/bootstrap/glyphicons-halflings-regular.ttf b/fonts/bootstrap/glyphicons-halflings-regular.ttf
new file mode 100644
index 00000000..1413fc60
Binary files /dev/null and b/fonts/bootstrap/glyphicons-halflings-regular.ttf differ
diff --git a/fonts/bootstrap/glyphicons-halflings-regular.woff b/fonts/bootstrap/glyphicons-halflings-regular.woff
new file mode 100644
index 00000000..9e612858
Binary files /dev/null and b/fonts/bootstrap/glyphicons-halflings-regular.woff differ
diff --git a/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/fonts/bootstrap/glyphicons-halflings-regular.woff2
new file mode 100644
index 00000000..64539b54
Binary files /dev/null and b/fonts/bootstrap/glyphicons-halflings-regular.woff2 differ
diff --git a/fonts/font-awesome-4.3.0/.DS_Store b/fonts/font-awesome-4.3.0/.DS_Store
new file mode 100644
index 00000000..cb477340
Binary files /dev/null and b/fonts/font-awesome-4.3.0/.DS_Store differ
diff --git a/fonts/font-awesome-4.3.0/css/font-awesome.css b/fonts/font-awesome-4.3.0/css/font-awesome.css
new file mode 100644
index 00000000..2dcdc220
--- /dev/null
+++ b/fonts/font-awesome-4.3.0/css/font-awesome.css
@@ -0,0 +1,1801 @@
+/*!
+ * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
+ src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ transform: translate(0, 0);
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+.fa-2x {
+ font-size: 2em;
+}
+.fa-3x {
+ font-size: 3em;
+}
+.fa-4x {
+ font-size: 4em;
+}
+.fa-5x {
+ font-size: 5em;
+}
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+.fa-ul > li {
+ position: relative;
+}
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+.fa-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: .1em;
+}
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.fa.pull-left {
+ margin-right: .3em;
+}
+.fa.pull-right {
+ margin-left: .3em;
+}
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.fa-rotate-180 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.fa-rotate-270 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ filter: none;
+}
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.fa-stack-1x {
+ line-height: inherit;
+}
+.fa-stack-2x {
+ font-size: 2em;
+}
+.fa-inverse {
+ color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+.fa-music:before {
+ content: "\f001";
+}
+.fa-search:before {
+ content: "\f002";
+}
+.fa-envelope-o:before {
+ content: "\f003";
+}
+.fa-heart:before {
+ content: "\f004";
+}
+.fa-star:before {
+ content: "\f005";
+}
+.fa-star-o:before {
+ content: "\f006";
+}
+.fa-user:before {
+ content: "\f007";
+}
+.fa-film:before {
+ content: "\f008";
+}
+.fa-th-large:before {
+ content: "\f009";
+}
+.fa-th:before {
+ content: "\f00a";
+}
+.fa-th-list:before {
+ content: "\f00b";
+}
+.fa-check:before {
+ content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+.fa-search-plus:before {
+ content: "\f00e";
+}
+.fa-search-minus:before {
+ content: "\f010";
+}
+.fa-power-off:before {
+ content: "\f011";
+}
+.fa-signal:before {
+ content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+.fa-trash-o:before {
+ content: "\f014";
+}
+.fa-home:before {
+ content: "\f015";
+}
+.fa-file-o:before {
+ content: "\f016";
+}
+.fa-clock-o:before {
+ content: "\f017";
+}
+.fa-road:before {
+ content: "\f018";
+}
+.fa-download:before {
+ content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+.fa-inbox:before {
+ content: "\f01c";
+}
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+.fa-refresh:before {
+ content: "\f021";
+}
+.fa-list-alt:before {
+ content: "\f022";
+}
+.fa-lock:before {
+ content: "\f023";
+}
+.fa-flag:before {
+ content: "\f024";
+}
+.fa-headphones:before {
+ content: "\f025";
+}
+.fa-volume-off:before {
+ content: "\f026";
+}
+.fa-volume-down:before {
+ content: "\f027";
+}
+.fa-volume-up:before {
+ content: "\f028";
+}
+.fa-qrcode:before {
+ content: "\f029";
+}
+.fa-barcode:before {
+ content: "\f02a";
+}
+.fa-tag:before {
+ content: "\f02b";
+}
+.fa-tags:before {
+ content: "\f02c";
+}
+.fa-book:before {
+ content: "\f02d";
+}
+.fa-bookmark:before {
+ content: "\f02e";
+}
+.fa-print:before {
+ content: "\f02f";
+}
+.fa-camera:before {
+ content: "\f030";
+}
+.fa-font:before {
+ content: "\f031";
+}
+.fa-bold:before {
+ content: "\f032";
+}
+.fa-italic:before {
+ content: "\f033";
+}
+.fa-text-height:before {
+ content: "\f034";
+}
+.fa-text-width:before {
+ content: "\f035";
+}
+.fa-align-left:before {
+ content: "\f036";
+}
+.fa-align-center:before {
+ content: "\f037";
+}
+.fa-align-right:before {
+ content: "\f038";
+}
+.fa-align-justify:before {
+ content: "\f039";
+}
+.fa-list:before {
+ content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+.fa-indent:before {
+ content: "\f03c";
+}
+.fa-video-camera:before {
+ content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+.fa-pencil:before {
+ content: "\f040";
+}
+.fa-map-marker:before {
+ content: "\f041";
+}
+.fa-adjust:before {
+ content: "\f042";
+}
+.fa-tint:before {
+ content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+.fa-share-square-o:before {
+ content: "\f045";
+}
+.fa-check-square-o:before {
+ content: "\f046";
+}
+.fa-arrows:before {
+ content: "\f047";
+}
+.fa-step-backward:before {
+ content: "\f048";
+}
+.fa-fast-backward:before {
+ content: "\f049";
+}
+.fa-backward:before {
+ content: "\f04a";
+}
+.fa-play:before {
+ content: "\f04b";
+}
+.fa-pause:before {
+ content: "\f04c";
+}
+.fa-stop:before {
+ content: "\f04d";
+}
+.fa-forward:before {
+ content: "\f04e";
+}
+.fa-fast-forward:before {
+ content: "\f050";
+}
+.fa-step-forward:before {
+ content: "\f051";
+}
+.fa-eject:before {
+ content: "\f052";
+}
+.fa-chevron-left:before {
+ content: "\f053";
+}
+.fa-chevron-right:before {
+ content: "\f054";
+}
+.fa-plus-circle:before {
+ content: "\f055";
+}
+.fa-minus-circle:before {
+ content: "\f056";
+}
+.fa-times-circle:before {
+ content: "\f057";
+}
+.fa-check-circle:before {
+ content: "\f058";
+}
+.fa-question-circle:before {
+ content: "\f059";
+}
+.fa-info-circle:before {
+ content: "\f05a";
+}
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+.fa-ban:before {
+ content: "\f05e";
+}
+.fa-arrow-left:before {
+ content: "\f060";
+}
+.fa-arrow-right:before {
+ content: "\f061";
+}
+.fa-arrow-up:before {
+ content: "\f062";
+}
+.fa-arrow-down:before {
+ content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+.fa-expand:before {
+ content: "\f065";
+}
+.fa-compress:before {
+ content: "\f066";
+}
+.fa-plus:before {
+ content: "\f067";
+}
+.fa-minus:before {
+ content: "\f068";
+}
+.fa-asterisk:before {
+ content: "\f069";
+}
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+.fa-gift:before {
+ content: "\f06b";
+}
+.fa-leaf:before {
+ content: "\f06c";
+}
+.fa-fire:before {
+ content: "\f06d";
+}
+.fa-eye:before {
+ content: "\f06e";
+}
+.fa-eye-slash:before {
+ content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+.fa-plane:before {
+ content: "\f072";
+}
+.fa-calendar:before {
+ content: "\f073";
+}
+.fa-random:before {
+ content: "\f074";
+}
+.fa-comment:before {
+ content: "\f075";
+}
+.fa-magnet:before {
+ content: "\f076";
+}
+.fa-chevron-up:before {
+ content: "\f077";
+}
+.fa-chevron-down:before {
+ content: "\f078";
+}
+.fa-retweet:before {
+ content: "\f079";
+}
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+.fa-folder:before {
+ content: "\f07b";
+}
+.fa-folder-open:before {
+ content: "\f07c";
+}
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+.fa-twitter-square:before {
+ content: "\f081";
+}
+.fa-facebook-square:before {
+ content: "\f082";
+}
+.fa-camera-retro:before {
+ content: "\f083";
+}
+.fa-key:before {
+ content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+.fa-comments:before {
+ content: "\f086";
+}
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+.fa-star-half:before {
+ content: "\f089";
+}
+.fa-heart-o:before {
+ content: "\f08a";
+}
+.fa-sign-out:before {
+ content: "\f08b";
+}
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+.fa-external-link:before {
+ content: "\f08e";
+}
+.fa-sign-in:before {
+ content: "\f090";
+}
+.fa-trophy:before {
+ content: "\f091";
+}
+.fa-github-square:before {
+ content: "\f092";
+}
+.fa-upload:before {
+ content: "\f093";
+}
+.fa-lemon-o:before {
+ content: "\f094";
+}
+.fa-phone:before {
+ content: "\f095";
+}
+.fa-square-o:before {
+ content: "\f096";
+}
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+.fa-phone-square:before {
+ content: "\f098";
+}
+.fa-twitter:before {
+ content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+.fa-github:before {
+ content: "\f09b";
+}
+.fa-unlock:before {
+ content: "\f09c";
+}
+.fa-credit-card:before {
+ content: "\f09d";
+}
+.fa-rss:before {
+ content: "\f09e";
+}
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+.fa-bell:before {
+ content: "\f0f3";
+}
+.fa-certificate:before {
+ content: "\f0a3";
+}
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+.fa-globe:before {
+ content: "\f0ac";
+}
+.fa-wrench:before {
+ content: "\f0ad";
+}
+.fa-tasks:before {
+ content: "\f0ae";
+}
+.fa-filter:before {
+ content: "\f0b0";
+}
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+.fa-cloud:before {
+ content: "\f0c2";
+}
+.fa-flask:before {
+ content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+.fa-square:before {
+ content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+.fa-underline:before {
+ content: "\f0cd";
+}
+.fa-table:before {
+ content: "\f0ce";
+}
+.fa-magic:before {
+ content: "\f0d0";
+}
+.fa-truck:before {
+ content: "\f0d1";
+}
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+.fa-money:before {
+ content: "\f0d6";
+}
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+.fa-caret-right:before {
+ content: "\f0da";
+}
+.fa-columns:before {
+ content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+.fa-envelope:before {
+ content: "\f0e0";
+}
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+.fa-exchange:before {
+ content: "\f0ec";
+}
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+.fa-user-md:before {
+ content: "\f0f0";
+}
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+.fa-coffee:before {
+ content: "\f0f4";
+}
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+.fa-building-o:before {
+ content: "\f0f7";
+}
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+.fa-medkit:before {
+ content: "\f0fa";
+}
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+.fa-beer:before {
+ content: "\f0fc";
+}
+.fa-h-square:before {
+ content: "\f0fd";
+}
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+.fa-angle-left:before {
+ content: "\f104";
+}
+.fa-angle-right:before {
+ content: "\f105";
+}
+.fa-angle-up:before {
+ content: "\f106";
+}
+.fa-angle-down:before {
+ content: "\f107";
+}
+.fa-desktop:before {
+ content: "\f108";
+}
+.fa-laptop:before {
+ content: "\f109";
+}
+.fa-tablet:before {
+ content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+.fa-circle-o:before {
+ content: "\f10c";
+}
+.fa-quote-left:before {
+ content: "\f10d";
+}
+.fa-quote-right:before {
+ content: "\f10e";
+}
+.fa-spinner:before {
+ content: "\f110";
+}
+.fa-circle:before {
+ content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+.fa-github-alt:before {
+ content: "\f113";
+}
+.fa-folder-o:before {
+ content: "\f114";
+}
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+.fa-smile-o:before {
+ content: "\f118";
+}
+.fa-frown-o:before {
+ content: "\f119";
+}
+.fa-meh-o:before {
+ content: "\f11a";
+}
+.fa-gamepad:before {
+ content: "\f11b";
+}
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+.fa-flag-o:before {
+ content: "\f11d";
+}
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+.fa-terminal:before {
+ content: "\f120";
+}
+.fa-code:before {
+ content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+.fa-location-arrow:before {
+ content: "\f124";
+}
+.fa-crop:before {
+ content: "\f125";
+}
+.fa-code-fork:before {
+ content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+.fa-question:before {
+ content: "\f128";
+}
+.fa-info:before {
+ content: "\f129";
+}
+.fa-exclamation:before {
+ content: "\f12a";
+}
+.fa-superscript:before {
+ content: "\f12b";
+}
+.fa-subscript:before {
+ content: "\f12c";
+}
+.fa-eraser:before {
+ content: "\f12d";
+}
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+.fa-microphone:before {
+ content: "\f130";
+}
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+.fa-shield:before {
+ content: "\f132";
+}
+.fa-calendar-o:before {
+ content: "\f133";
+}
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+.fa-rocket:before {
+ content: "\f135";
+}
+.fa-maxcdn:before {
+ content: "\f136";
+}
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+.fa-html5:before {
+ content: "\f13b";
+}
+.fa-css3:before {
+ content: "\f13c";
+}
+.fa-anchor:before {
+ content: "\f13d";
+}
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+.fa-bullseye:before {
+ content: "\f140";
+}
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+.fa-rss-square:before {
+ content: "\f143";
+}
+.fa-play-circle:before {
+ content: "\f144";
+}
+.fa-ticket:before {
+ content: "\f145";
+}
+.fa-minus-square:before {
+ content: "\f146";
+}
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+.fa-level-up:before {
+ content: "\f148";
+}
+.fa-level-down:before {
+ content: "\f149";
+}
+.fa-check-square:before {
+ content: "\f14a";
+}
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+.fa-share-square:before {
+ content: "\f14d";
+}
+.fa-compass:before {
+ content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+.fa-gbp:before {
+ content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+.fa-file:before {
+ content: "\f15b";
+}
+.fa-file-text:before {
+ content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+.fa-youtube-square:before {
+ content: "\f166";
+}
+.fa-youtube:before {
+ content: "\f167";
+}
+.fa-xing:before {
+ content: "\f168";
+}
+.fa-xing-square:before {
+ content: "\f169";
+}
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+.fa-dropbox:before {
+ content: "\f16b";
+}
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+.fa-instagram:before {
+ content: "\f16d";
+}
+.fa-flickr:before {
+ content: "\f16e";
+}
+.fa-adn:before {
+ content: "\f170";
+}
+.fa-bitbucket:before {
+ content: "\f171";
+}
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+.fa-tumblr:before {
+ content: "\f173";
+}
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+.fa-apple:before {
+ content: "\f179";
+}
+.fa-windows:before {
+ content: "\f17a";
+}
+.fa-android:before {
+ content: "\f17b";
+}
+.fa-linux:before {
+ content: "\f17c";
+}
+.fa-dribbble:before {
+ content: "\f17d";
+}
+.fa-skype:before {
+ content: "\f17e";
+}
+.fa-foursquare:before {
+ content: "\f180";
+}
+.fa-trello:before {
+ content: "\f181";
+}
+.fa-female:before {
+ content: "\f182";
+}
+.fa-male:before {
+ content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+.fa-sun-o:before {
+ content: "\f185";
+}
+.fa-moon-o:before {
+ content: "\f186";
+}
+.fa-archive:before {
+ content: "\f187";
+}
+.fa-bug:before {
+ content: "\f188";
+}
+.fa-vk:before {
+ content: "\f189";
+}
+.fa-weibo:before {
+ content: "\f18a";
+}
+.fa-renren:before {
+ content: "\f18b";
+}
+.fa-pagelines:before {
+ content: "\f18c";
+}
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+.fa-wheelchair:before {
+ content: "\f193";
+}
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+.fa-slack:before {
+ content: "\f198";
+}
+.fa-envelope-square:before {
+ content: "\f199";
+}
+.fa-wordpress:before {
+ content: "\f19a";
+}
+.fa-openid:before {
+ content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+.fa-yahoo:before {
+ content: "\f19e";
+}
+.fa-google:before {
+ content: "\f1a0";
+}
+.fa-reddit:before {
+ content: "\f1a1";
+}
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+.fa-delicious:before {
+ content: "\f1a5";
+}
+.fa-digg:before {
+ content: "\f1a6";
+}
+.fa-pied-piper:before {
+ content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+.fa-drupal:before {
+ content: "\f1a9";
+}
+.fa-joomla:before {
+ content: "\f1aa";
+}
+.fa-language:before {
+ content: "\f1ab";
+}
+.fa-fax:before {
+ content: "\f1ac";
+}
+.fa-building:before {
+ content: "\f1ad";
+}
+.fa-child:before {
+ content: "\f1ae";
+}
+.fa-paw:before {
+ content: "\f1b0";
+}
+.fa-spoon:before {
+ content: "\f1b1";
+}
+.fa-cube:before {
+ content: "\f1b2";
+}
+.fa-cubes:before {
+ content: "\f1b3";
+}
+.fa-behance:before {
+ content: "\f1b4";
+}
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+.fa-steam:before {
+ content: "\f1b6";
+}
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+.fa-recycle:before {
+ content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+.fa-tree:before {
+ content: "\f1bb";
+}
+.fa-spotify:before {
+ content: "\f1bc";
+}
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+.fa-database:before {
+ content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+.fa-vine:before {
+ content: "\f1ca";
+}
+.fa-codepen:before {
+ content: "\f1cb";
+}
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+.fa-ra:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+.fa-git-square:before {
+ content: "\f1d2";
+}
+.fa-git:before {
+ content: "\f1d3";
+}
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+.fa-qq:before {
+ content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+.fa-history:before {
+ content: "\f1da";
+}
+.fa-genderless:before,
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+.fa-header:before {
+ content: "\f1dc";
+}
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+.fa-sliders:before {
+ content: "\f1de";
+}
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+.fa-bomb:before {
+ content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+.fa-tty:before {
+ content: "\f1e4";
+}
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+.fa-plug:before {
+ content: "\f1e6";
+}
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+.fa-twitch:before {
+ content: "\f1e8";
+}
+.fa-yelp:before {
+ content: "\f1e9";
+}
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+.fa-wifi:before {
+ content: "\f1eb";
+}
+.fa-calculator:before {
+ content: "\f1ec";
+}
+.fa-paypal:before {
+ content: "\f1ed";
+}
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+.fa-trash:before {
+ content: "\f1f8";
+}
+.fa-copyright:before {
+ content: "\f1f9";
+}
+.fa-at:before {
+ content: "\f1fa";
+}
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+.fa-pie-chart:before {
+ content: "\f200";
+}
+.fa-line-chart:before {
+ content: "\f201";
+}
+.fa-lastfm:before {
+ content: "\f202";
+}
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+.fa-toggle-off:before {
+ content: "\f204";
+}
+.fa-toggle-on:before {
+ content: "\f205";
+}
+.fa-bicycle:before {
+ content: "\f206";
+}
+.fa-bus:before {
+ content: "\f207";
+}
+.fa-ioxhost:before {
+ content: "\f208";
+}
+.fa-angellist:before {
+ content: "\f209";
+}
+.fa-cc:before {
+ content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+.fa-meanpath:before {
+ content: "\f20c";
+}
+.fa-buysellads:before {
+ content: "\f20d";
+}
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+.fa-dashcube:before {
+ content: "\f210";
+}
+.fa-forumbee:before {
+ content: "\f211";
+}
+.fa-leanpub:before {
+ content: "\f212";
+}
+.fa-sellsy:before {
+ content: "\f213";
+}
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+.fa-skyatlas:before {
+ content: "\f216";
+}
+.fa-cart-plus:before {
+ content: "\f217";
+}
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+.fa-diamond:before {
+ content: "\f219";
+}
+.fa-ship:before {
+ content: "\f21a";
+}
+.fa-user-secret:before {
+ content: "\f21b";
+}
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+.fa-street-view:before {
+ content: "\f21d";
+}
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+.fa-venus:before {
+ content: "\f221";
+}
+.fa-mars:before {
+ content: "\f222";
+}
+.fa-mercury:before {
+ content: "\f223";
+}
+.fa-transgender:before {
+ content: "\f224";
+}
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+.fa-venus-double:before {
+ content: "\f226";
+}
+.fa-mars-double:before {
+ content: "\f227";
+}
+.fa-venus-mars:before {
+ content: "\f228";
+}
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+.fa-neuter:before {
+ content: "\f22c";
+}
+.fa-facebook-official:before {
+ content: "\f230";
+}
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+.fa-whatsapp:before {
+ content: "\f232";
+}
+.fa-server:before {
+ content: "\f233";
+}
+.fa-user-plus:before {
+ content: "\f234";
+}
+.fa-user-times:before {
+ content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+.fa-viacoin:before {
+ content: "\f237";
+}
+.fa-train:before {
+ content: "\f238";
+}
+.fa-subway:before {
+ content: "\f239";
+}
+.fa-medium:before {
+ content: "\f23a";
+}
diff --git a/fonts/font-awesome-4.3.0/css/font-awesome.min.css b/fonts/font-awesome-4.3.0/css/font-awesome.min.css
new file mode 100644
index 00000000..24fcc04c
--- /dev/null
+++ b/fonts/font-awesome-4.3.0/css/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}
\ No newline at end of file
diff --git a/fonts/font-awesome-4.3.0/fonts/FontAwesome.otf b/fonts/font-awesome-4.3.0/fonts/FontAwesome.otf
new file mode 100644
index 00000000..f7936cc1
Binary files /dev/null and b/fonts/font-awesome-4.3.0/fonts/FontAwesome.otf differ
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.eot b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.eot
new file mode 100644
index 00000000..33b2bb80
Binary files /dev/null and b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.eot differ
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.svg b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.svg
new file mode 100644
index 00000000..1ee89d43
--- /dev/null
+++ b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.svg
@@ -0,0 +1,565 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf
new file mode 100644
index 00000000..ed9372f8
Binary files /dev/null and b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf differ
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff
new file mode 100644
index 00000000..8b280b98
Binary files /dev/null and b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff differ
diff --git a/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2
new file mode 100644
index 00000000..3311d585
Binary files /dev/null and b/fonts/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 differ
diff --git a/images/andriy.jpg b/images/andriy.jpg
new file mode 100644
index 00000000..528d6df0
Binary files /dev/null and b/images/andriy.jpg differ
diff --git a/images/graph-01.svg b/images/graph-01.svg
new file mode 100644
index 00000000..6786099f
--- /dev/null
+++ b/images/graph-01.svg
@@ -0,0 +1,425 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/images/graph-02.svg b/images/graph-02.svg
new file mode 100644
index 00000000..93733ba5
--- /dev/null
+++ b/images/graph-02.svg
@@ -0,0 +1,435 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/images/graph-03.svg b/images/graph-03.svg
new file mode 100644
index 00000000..871a6424
--- /dev/null
+++ b/images/graph-03.svg
@@ -0,0 +1,576 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/images/graph-04.svg b/images/graph-04.svg
new file mode 100644
index 00000000..af6a560e
--- /dev/null
+++ b/images/graph-04.svg
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/images/img-01.png b/images/img-01.png
new file mode 100644
index 00000000..815caa1c
Binary files /dev/null and b/images/img-01.png differ
diff --git a/images/img-decor-01.jpg b/images/img-decor-01.jpg
new file mode 100644
index 00000000..cb1517f2
Binary files /dev/null and b/images/img-decor-01.jpg differ
diff --git a/images/img-decor-02.jpg b/images/img-decor-02.jpg
new file mode 100644
index 00000000..6f03f48e
Binary files /dev/null and b/images/img-decor-02.jpg differ
diff --git a/images/img-decor-03.jpg b/images/img-decor-03.jpg
new file mode 100644
index 00000000..b5e03f94
Binary files /dev/null and b/images/img-decor-03.jpg differ
diff --git a/images/logo-codrops.png b/images/logo-codrops.png
new file mode 100644
index 00000000..0df949e4
Binary files /dev/null and b/images/logo-codrops.png differ
diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 00000000..82f34a98
Binary files /dev/null and b/images/logo.png differ
diff --git a/images/logo.svg b/images/logo.svg
new file mode 100644
index 00000000..29c942d1
--- /dev/null
+++ b/images/logo.svg
@@ -0,0 +1,619 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/images/rsaenz.jpeg b/images/rsaenz.jpeg
new file mode 100644
index 00000000..102e5dcd
Binary files /dev/null and b/images/rsaenz.jpeg differ
diff --git a/index.html b/index.html
index 5a4e8347..c8a04c78 100644
--- a/index.html
+++ b/index.html
@@ -1,138 +1,297 @@
-
-
-
- Rambox by saenzramiro
-
-
-
-
-
-
-
-
-
-
- Available for Windows, Mac and Linux.
-
-
-
-
- Screenshots
-
-Windows 7
-
-
-
- Services available - 20
-
-
-
-
- Features
-
-
-[x] Reorder applications in the tab bar.
-[x] Notification badge in the tab.
-[x] Minimize to tray.
-[x] Mute audio to specific service.
-[x] Separate tabs floating to the right.
-[x] Add a custom service.
-[x] Task icon notification badge.
-[x] Modify an existing service.
-
-
-
- To Do
-
-
-[ ] Change theme.
-[ ] Prevent notifications to specific service.
-
-
-
- Getting Involved
-
-Want to report a bug, request a feature, contribute to or translate Rambox? We need all the help we can get! Fork and work!
-
-
- Getting Started
-
-If you're comfortable getting up and running from a git clone
, this method is for you.
-
-
- Technologies:
-
-
-Sencha Ext JS 5.1.1.451
-Electron
-
-
-
- Environment:
-
-
-Sencha Cmd 6.1.2.15
-NPM 3.8.7
-Node.js 4.0.0
-
-
-
- Quickstart:
-
-
-git clone https://github.com/saenzramiro/rambox.git
-npm install
-sencha app watch
-npm start
-
-
-
-
-
- Disclosure
-
-Rambox is not affiliated with any of the messaging apps offered.
-
-
- Licence
-
-MIT License
-
-Copyright (c) 2016 Rambox
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-
-
-
-
-
+
+
+
+
+ Rambox : Free and Open Source app for Slack, WhatsApp, Messenger, Skype and much more...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Rambox
+
+
Free and Open Source messaging and emailing app that combines common web applications into one.
+
Available for Windows, Mac and Linux
+
+
+
+
+
+
+
+
+
+
The new way to organize your services
+
Rambox give you the possibility to add common services many times you need for business and private accounts. It's perfect for tech people who works with many services.
+
+
+
+
+
+
+
+
+
+
<Here is what you get>
+
+
+
+
+
Notifications
+
Displays native notifications as usual when you add services that provide this option.
+
+
+
+
+
+
Add Custom Services
+
You can add custom services that are not listed in the list.
+
+
+
+
+
+
Reorder and grouping
+
Reorder services in the tab bar and group into two groups (left and right).
+
+
+
+
+
+
Badges
+
Every time you have something new to check, you will see a badge in the tab of the service.
+
+
+
+
+
+
System Tray
+
Rambox will still running in your system tray.
+
+
+
+
+
+
+
<Here is what you get>
+
+
+
+
+
+
+
+
+
+
Services
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Add more services manually!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Rambox for WindowsRequires Windows 7 or newer
+
+
+
+
+
Rambox for MacRequires 10.9 or newer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Technology used
+
+
Used for UI and UX.
+
+
Tool for deployment.
+
+
Framework for creating native application.
+
+
Packaging, auto update and installers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/.subl51.tmp b/js/.subl51.tmp
new file mode 100644
index 00000000..d8a964ca
--- /dev/null
+++ b/js/.subl51.tmp
@@ -0,0 +1,610 @@
+// page init
+jQuery(function() {
+ initCycleCarousel();
+ initBackgroundResize();
+ // menu
+ menu.init();
+ // scroller
+ scroller.init();
+});
+
+// cycle scroll gallery init
+function initCycleCarousel() {
+ jQuery('.cycle-gallery').scrollAbsoluteGallery({
+ mask: '.mask',
+ slider: '.slideset',
+ slides: '.slide',
+ btnPrev: 'a.btn-prev',
+ btnNext: 'a.btn-next',
+ pagerLinks: '.pagination li',
+ stretchSlideToMask: true,
+ pauseOnHover: true,
+ maskAutoSize: true,
+ autoRotation: false,
+ switchTime: 3000,
+ animSpeed: 500
+ });
+}
+
+// stretch background to fill blocks
+function initBackgroundResize() {
+ jQuery('.visual-area').each(function() {
+ ImageStretcher.add({
+ container: this,
+ image: 'img.bg-stretch'
+ });
+ });
+}
+
+var body = $('body'),
+ // menu for mobile view
+ menu = {
+ config : {
+ trigger : jQuery('.nav-opener'),
+ open : false
+ },
+ init : function() {
+ this.config.trigger.click(this.toggle.bind(this));
+ },
+ toggle : function() {
+ if(this.config.open) {
+ body.removeClass('nav-active');
+ }
+ else {
+ body.addClass('nav-active');
+ }
+ this.config.open = !this.config.open;
+ }
+ };
+
+// move some elements on scroll
+var scroller = {
+ config : {
+ docElem : window.document.documentElement,
+ // The viewportFactor defines how much of the appearing item has to be visible in order to trigger the animation
+ // if we'd use a value of 0, this would mean that it would add the animation class as soon as the item is in the viewport.
+ // If we were to use the value of 1, the animation would only be triggered when we see all of the item in the viewport (100% of it)
+ viewportFactor : 0.2,
+ elems : '.slide-holder'
+ },
+ getViewportH : function() {
+ var client = docElem['clientHeight'],
+ inner = window['innerHeight'];
+
+ if( client < inner )
+ return inner;
+ else
+ return client;
+ },
+ scrollY : function() {
+ return window.pageYOffset || docElem.scrollTop;
+ },
+ getOffset : function(el) {
+ var offsetTop = 0, offsetLeft = 0;
+ do {
+ if ( !isNaN( el.offsetTop ) ) {
+ offsetTop += el.offsetTop;
+ }
+ if ( !isNaN( el.offsetLeft ) ) {
+ offsetLeft += el.offsetLeft;
+ }
+ } while( el = el.offsetParent )
+
+ return {
+ top : offsetTop,
+ left : offsetLeft
+ }
+ },
+ inViewport : function(el, h) {
+ var elH = el.offsetHeight,
+ scrolled = this.scrollY(),
+ viewed = scrolled + this.getViewportH(),
+ elTop = this.getOffset(el).top,
+ elBottom = elTop + elH,
+ // if 0, the element is considered in the viewport as soon as it enters.
+ // if 1, the element is considered in the viewport only when it's fully inside
+ // value in percentage (1 >= h >= 0)
+ h = h || 0;
+
+ return (elTop + elH * h) <= viewed && (elBottom) >= scrolled;
+ },
+ init : function() {
+ this.sections = jQuery(this.config.elems);
+ this.didScroll = false;
+
+ var self = this;
+ // the sections already shown...
+ this.sections.each(function() {
+ if( !self.inViewport( this ) ) {
+ this.addClass('scroll-effect-init');
+ }
+ });
+
+ var scrollHandler = function() {
+ if( !self.didScroll ) {
+ self.didScroll = true;
+ setTimeout( function() { self.scrollPage(); }, 60 );
+ }
+ },
+ resizeHandler = function() {
+ function delayed() {
+ self.scrollPage();
+ self.resizeTimeout = null;
+ }
+ if ( self.resizeTimeout ) {
+ clearTimeout( self.resizeTimeout );
+ }
+ self.resizeTimeout = setTimeout( delayed, 200 );
+ };
+
+ window.addEventListener( 'scroll', scrollHandler, false );
+ window.addEventListener( 'resize', resizeHandler, false );
+ },
+ scrollPage : function() {
+ var self = this;
+
+ this.sections.each(function() {
+ if( self.inViewport( this, self.options.viewportFactor ) ) {
+ this.addClass('scroll-effect-animate');
+ }
+ else {
+ // this add class init if it doesn't have it. This will ensure that the items initially in the viewport will also animate on scroll
+ this.addClass('scroll-effect-init');
+ this.removeClass('scroll-effect-animate');
+ }
+ });
+ this.didScroll = false;
+ }
+}
+
+/*
+ * jQuery Cycle Carousel plugin
+ */
+;(function($){
+ function ScrollAbsoluteGallery(options) {
+ this.options = $.extend({
+ activeClass: 'active',
+ mask: 'div.slides-mask',
+ slider: '>ul',
+ slides: '>li',
+ btnPrev: '.btn-prev',
+ btnNext: '.btn-next',
+ pagerLinks: 'ul.pager > li',
+ generatePagination: false,
+ pagerList: '',
+ pagerListItem: ' ',
+ pagerListItemText: 'a',
+ galleryReadyClass: 'gallery-js-ready',
+ currentNumber: 'span.current-num',
+ totalNumber: 'span.total-num',
+ maskAutoSize: false,
+ autoRotation: false,
+ pauseOnHover: false,
+ stretchSlideToMask: false,
+ switchTime: 3000,
+ animSpeed: 500,
+ handleTouch: true,
+ swipeThreshold: 15,
+ vertical: false
+ }, options);
+ this.init();
+ }
+ ScrollAbsoluteGallery.prototype = {
+ init: function() {
+ if(this.options.holder) {
+ this.findElements();
+ this.attachEvents();
+ this.makeCallback('onInit', this);
+ }
+ },
+ findElements: function() {
+ // find structure elements
+ this.holder = $(this.options.holder).addClass(this.options.galleryReadyClass);
+ this.mask = this.holder.find(this.options.mask);
+ this.slider = this.mask.find(this.options.slider);
+ this.slides = this.slider.find(this.options.slides);
+ this.btnPrev = this.holder.find(this.options.btnPrev);
+ this.btnNext = this.holder.find(this.options.btnNext);
+
+ // slide count display
+ this.currentNumber = this.holder.find(this.options.currentNumber);
+ this.totalNumber = this.holder.find(this.options.totalNumber);
+
+ // create gallery pagination
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerLinks = this.buildPagination();
+ } else {
+ this.pagerLinks = this.holder.find(this.options.pagerLinks);
+ }
+
+ // define index variables
+ this.sizeProperty = this.options.vertical ? 'height' : 'width';
+ this.positionProperty = this.options.vertical ? 'top' : 'left';
+ this.animProperty = this.options.vertical ? 'marginTop' : 'marginLeft';
+
+ this.slideSize = this.slides[this.sizeProperty]();
+ this.currentIndex = 0;
+ this.prevIndex = 0;
+
+ // reposition elements
+ this.options.maskAutoSize = this.options.vertical ? false : this.options.maskAutoSize;
+ if(this.options.vertical) {
+ this.mask.css({
+ height: this.slides.innerHeight()
+ });
+ }
+ if(this.options.maskAutoSize){
+ this.mask.css({
+ height: this.slider.height()
+ });
+ }
+ this.slider.css({
+ position: 'relative',
+ height: this.options.vertical ? this.slideSize * this.slides.length : '100%'
+ });
+ this.slides.css({
+ position: 'absolute'
+ }).css(this.positionProperty, -9999).eq(this.currentIndex).css(this.positionProperty, 0);
+ this.refreshState();
+ },
+ buildPagination: function() {
+ var pagerLinks = $();
+ if(!this.pagerHolder) {
+ this.pagerHolder = this.holder.find(this.options.generatePagination);
+ }
+ if(this.pagerHolder.length) {
+ this.pagerHolder.empty();
+ this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
+ for(var i = 0; i < this.slides.length; i++) {
+ $(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i+1);
+ }
+ pagerLinks = this.pagerList.children();
+ }
+ return pagerLinks;
+ },
+ attachEvents: function() {
+ // attach handlers
+ var self = this;
+ if(this.btnPrev.length) {
+ this.btnPrevHandler = function(e) {
+ e.preventDefault();
+ self.prevSlide();
+ };
+ this.btnPrev.click(this.btnPrevHandler);
+ }
+ if(this.btnNext.length) {
+ this.btnNextHandler = function(e) {
+ e.preventDefault();
+ self.nextSlide();
+ };
+ this.btnNext.click(this.btnNextHandler);
+ }
+ if(this.pagerLinks.length) {
+ this.pagerLinksHandler = function(e) {
+ e.preventDefault();
+ self.numSlide(self.pagerLinks.index(e.currentTarget));
+ };
+ this.pagerLinks.click(this.pagerLinksHandler);
+ }
+
+ // handle autorotation pause on hover
+ if(this.options.pauseOnHover) {
+ this.hoverHandler = function() {
+ clearTimeout(self.timer);
+ };
+ this.leaveHandler = function() {
+ self.autoRotate();
+ };
+ this.holder.bind({mouseenter: this.hoverHandler, mouseleave: this.leaveHandler});
+ }
+
+ // handle holder and slides dimensions
+ this.resizeHandler = function() {
+ if(!self.animating) {
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+ self.resizeHolder();
+ self.setSlidesPosition(self.currentIndex);
+ }
+ };
+ $(window).bind('load resize orientationchange', this.resizeHandler);
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+
+ // handle swipe on mobile devices
+ if(this.options.handleTouch && window.Hammer && this.mask.length && this.slides.length > 1 && isTouchDevice) {
+ this.swipeHandler = new Hammer.Manager(this.mask[0]);
+ this.swipeHandler.add(new Hammer.Pan({
+ direction: self.options.vertical ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,
+ threshold: self.options.swipeThreshold
+ }));
+
+ this.swipeHandler.on('panstart', function() {
+ if(self.animating) {
+ self.swipeHandler.stop();
+ } else {
+ clearTimeout(self.timer);
+ }
+ }).on('panmove', function(e) {
+ self.swipeOffset = -self.slideSize + e[self.options.vertical ? 'deltaY' : 'deltaX'];
+ self.slider.css(self.animProperty, self.swipeOffset);
+ clearTimeout(self.timer);
+ }).on('panend', function(e) {
+ if(e.distance > self.options.swipeThreshold) {
+ if(e.offsetDirection === Hammer.DIRECTION_RIGHT || e.offsetDirection === Hammer.DIRECTION_DOWN) {
+ self.nextSlide();
+ } else {
+ self.prevSlide();
+ }
+ } else {
+ var tmpObj = {};
+ tmpObj[self.animProperty] = -self.slideSize;
+ self.slider.animate(tmpObj, {duration: self.options.animSpeed});
+ self.autoRotate();
+ }
+ self.swipeOffset = 0;
+ });
+ }
+
+ // start autorotation
+ this.autoRotate();
+ this.resizeHolder();
+ this.setSlidesPosition(this.currentIndex);
+ },
+ resizeSlides: function() {
+ this.slideSize = this.mask[this.options.vertical ? 'height' : 'width']();
+ this.slides.css(this.sizeProperty, this.slideSize);
+ },
+ resizeHolder: function() {
+ if(this.options.maskAutoSize) {
+ this.mask.css({
+ height: this.slides.eq(this.currentIndex).outerHeight(true)
+ });
+ }
+ },
+ prevSlide: function() {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = -1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex > 0) this.currentIndex--;
+ else this.currentIndex = this.slides.length - 1;
+ this.switchSlide();
+ }
+ },
+ nextSlide: function(fromAutoRotation) {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = 1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex < this.slides.length - 1) this.currentIndex++;
+ else this.currentIndex = 0;
+ this.switchSlide();
+ }
+ },
+ numSlide: function(c) {
+ if(!this.animating && this.currentIndex !== c && this.slides.length > 1) {
+ this.direction = c > this.currentIndex ? 1 : -1;
+ this.prevIndex = this.currentIndex;
+ this.currentIndex = c;
+ this.switchSlide();
+ }
+ },
+ preparePosition: function() {
+ // prepare slides position before animation
+ this.setSlidesPosition(this.prevIndex, this.direction < 0 ? this.currentIndex : null, this.direction > 0 ? this.currentIndex : null, this.direction);
+ },
+ setSlidesPosition: function(index, slideLeft, slideRight, direction) {
+ // reposition holder and nearest slides
+ if(this.slides.length > 1) {
+ var prevIndex = (typeof slideLeft === 'number' ? slideLeft : index > 0 ? index - 1 : this.slides.length - 1);
+ var nextIndex = (typeof slideRight === 'number' ? slideRight : index < this.slides.length - 1 ? index + 1 : 0);
+
+ this.slider.css(this.animProperty, this.swipeOffset ? this.swipeOffset : -this.slideSize);
+ this.slides.css(this.positionProperty, -9999).eq(index).css(this.positionProperty, this.slideSize);
+ if(prevIndex === nextIndex && typeof direction === 'number') {
+ var calcOffset = direction > 0 ? this.slideSize*2 : 0;
+ this.slides.eq(nextIndex).css(this.positionProperty, calcOffset);
+ } else {
+ this.slides.eq(prevIndex).css(this.positionProperty, 0);
+ this.slides.eq(nextIndex).css(this.positionProperty, this.slideSize*2);
+ }
+ }
+ },
+ switchSlide: function() {
+ // prepare positions and calculate offset
+ var self = this;
+ var oldSlide = this.slides.eq(this.prevIndex);
+ var newSlide = this.slides.eq(this.currentIndex);
+ this.animating = true;
+
+ // resize mask to fit slide
+ if(this.options.maskAutoSize) {
+ this.mask.animate({
+ height: newSlide.outerHeight(true)
+ }, {
+ duration: this.options.animSpeed
+ });
+ }
+
+ // start animation
+ var animProps = {};
+ animProps[this.animProperty] = this.direction > 0 ? -this.slideSize*2 : 0;
+ this.preparePosition();
+ this.slider.animate(animProps,{duration:this.options.animSpeed, complete:function() {
+ self.setSlidesPosition(self.currentIndex);
+
+ // start autorotation
+ self.animating = false;
+ self.autoRotate();
+
+ // onchange callback
+ self.makeCallback('onChange', self);
+ }});
+
+ // refresh classes
+ this.refreshState();
+
+ // onchange callback
+ this.makeCallback('onBeforeChange', this);
+ },
+ refreshState: function(initial) {
+ // slide change function
+ this.slides.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+ this.pagerLinks.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+
+ // display current slide number
+ this.currentNumber.html(this.currentIndex + 1);
+ this.totalNumber.html(this.slides.length);
+
+ // add class if not enough slides
+ this.holder.toggleClass('not-enough-slides', this.slides.length === 1);
+ },
+ autoRotate: function() {
+ var self = this;
+ clearTimeout(this.timer);
+ if(this.options.autoRotation) {
+ this.timer = setTimeout(function() {
+ self.nextSlide();
+ }, this.options.switchTime);
+ }
+ },
+ makeCallback: function(name) {
+ if(typeof this.options[name] === 'function') {
+ var args = Array.prototype.slice.call(arguments);
+ args.shift();
+ this.options[name].apply(this, args);
+ }
+ },
+ destroy: function() {
+ // destroy handler
+ this.btnPrev.unbind('click', this.btnPrevHandler);
+ this.btnNext.unbind('click', this.btnNextHandler);
+ this.pagerLinks.unbind('click', this.pagerLinksHandler);
+ this.holder.unbind('mouseenter', this.hoverHandler);
+ this.holder.unbind('mouseleave', this.leaveHandler);
+ $(window).unbind('load resize orientationchange', this.resizeHandler);
+ clearTimeout(this.timer);
+
+ // destroy swipe handler
+ if(this.swipeHandler) {
+ this.swipeHandler.destroy();
+ }
+
+ // remove inline styles, classes and pagination
+ this.holder.removeClass(this.options.galleryReadyClass);
+ this.slider.add(this.slides).removeAttr('style');
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerHolder.empty();
+ }
+ }
+ };
+
+ // detect device type
+ var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
+
+ // jquery plugin
+ $.fn.scrollAbsoluteGallery = function(opt){
+ return this.each(function(){
+ $(this).data('ScrollAbsoluteGallery', new ScrollAbsoluteGallery($.extend(opt,{holder:this})));
+ });
+ };
+}(jQuery));
+
+/*
+ * Image Stretch module
+ */
+var ImageStretcher = {
+ getDimensions: function(data) {
+ // calculate element coords to fit in mask
+ var ratio = data.imageRatio || (data.imageWidth / data.imageHeight),
+ slideWidth = data.maskWidth,
+ slideHeight = slideWidth / ratio;
+
+ if(slideHeight < data.maskHeight) {
+ slideHeight = data.maskHeight;
+ slideWidth = slideHeight * ratio;
+ }
+ return {
+ width: slideWidth,
+ height: slideHeight,
+ top: (data.maskHeight - slideHeight) / 2,
+ left: (data.maskWidth - slideWidth) / 2
+ };
+ },
+ getRatio: function(image) {
+ if(image.prop('naturalWidth')) {
+ return image.prop('naturalWidth') / image.prop('naturalHeight');
+ } else {
+ var img = new Image();
+ img.src = image.prop('src');
+ return img.width / img.height;
+ }
+ },
+ imageLoaded: function(image, callback) {
+ var self = this;
+ var loadHandler = function() {
+ callback.call(self);
+ };
+ if(image.prop('complete')) {
+ loadHandler();
+ } else {
+ image.one('load', loadHandler);
+ }
+ },
+ resizeHandler: function() {
+ var self = this;
+ jQuery.each(this.imgList, function(index, item) {
+ if(item.image.prop('complete')) {
+ self.resizeImage(item.image, item.container);
+ }
+ });
+ },
+ resizeImage: function(image, container) {
+ this.imageLoaded(image, function() {
+ var styles = this.getDimensions({
+ imageRatio: this.getRatio(image),
+ maskWidth: container.width(),
+ maskHeight: container.height()
+ });
+ image.css({
+ width: styles.width,
+ height: styles.height,
+ marginTop: styles.top,
+ marginLeft: styles.left
+ });
+ });
+ },
+ add: function(options) {
+ var container = jQuery(options.container ? options.container : window),
+ image = typeof options.image === 'string' ? container.find(options.image) : jQuery(options.image);
+
+ // resize image
+ this.resizeImage(image, container);
+
+ // add resize handler once if needed
+ if(!this.win) {
+ this.resizeHandler = jQuery.proxy(this.resizeHandler, this);
+ this.imgList = [];
+ this.win = jQuery(window);
+ this.win.on('resize orientationchange', this.resizeHandler);
+ }
+
+ // store item in collection
+ this.imgList.push({
+ container: container,
+ image: image
+ });
+ }
+};
+
+/*! Hammer.JS - v2.0.4 - 2014-09-28
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2014 Jorik Tangelder;
+ * Licensed under the MIT license */
+if(Object.create){!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;af?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;sn;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),o.loop!==!0||t||($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:1},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;cO;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});
\ No newline at end of file
diff --git a/js/.subl571.tmp b/js/.subl571.tmp
new file mode 100644
index 00000000..6d87c39b
--- /dev/null
+++ b/js/.subl571.tmp
@@ -0,0 +1,611 @@
+// page init
+jQuery(function() {
+ initCycleCarousel();
+ initBackgroundResize();
+ // menu
+ menu.init();
+ // scroller
+ scroller.init();
+});
+
+// cycle scroll gallery init
+function initCycleCarousel() {
+ jQuery('.cycle-gallery').scrollAbsoluteGallery({
+ mask: '.mask',
+ slider: '.slideset',
+ slides: '.slide',
+ btnPrev: 'a.btn-prev',
+ btnNext: 'a.btn-next',
+ pagerLinks: '.pagination li',
+ stretchSlideToMask: true,
+ pauseOnHover: true,
+ maskAutoSize: true,
+ autoRotation: false,
+ switchTime: 3000,
+ animSpeed: 500
+ });
+}
+
+// stretch background to fill blocks
+function initBackgroundResize() {
+ jQuery('.visual-area').each(function() {
+ ImageStretcher.add({
+ container: this,
+ image: 'img.bg-stretch'
+ });
+ });
+}
+
+var body = $('body'),
+ // menu for mobile view
+ menu = {
+ config : {
+ trigger : jQuery('.nav-opener'),
+ open : false
+ },
+ init : function() {
+ this.config.trigger.click(this.toggle.bind(this));
+ },
+ toggle : function() {
+ if(this.config.open) {
+ body.removeClass('nav-active');
+ }
+ else {
+ body.addClass('nav-active');
+ }
+ this.config.open = !this.config.open;
+ }
+ };
+
+// move some elements on scroll
+var scroller = {
+ config : {
+ docElem : window.document.documentElement,
+ // The viewportFactor defines how much of the appearing item has to be visible in order to trigger the animation
+ // if we'd use a value of 0, this would mean that it would add the animation class as soon as the item is in the viewport.
+ // If we were to use the value of 1, the animation would only be triggered when we see all of the item in the viewport (100% of it)
+ viewportFactor : 0.2,
+ elems : '.slide-holder'
+ },
+ getViewportH : function() {
+ var client = this.config.docElem['clientHeight'],
+ inner = window['innerHeight'];
+
+ if( client < inner )
+ return inner;
+ else
+ return client;
+ },
+ scrollY : function() {
+ return window.pageYOffset || this.config.docElem.scrollTop;
+ },
+ getOffset : function(el) {
+ var offsetTop = 0, offsetLeft = 0;
+ do {
+ if ( !isNaN( el.offsetTop ) ) {
+ offsetTop += el.offsetTop;
+ }
+ if ( !isNaN( el.offsetLeft ) ) {
+ offsetLeft += el.offsetLeft;
+ }
+ } while( el = el.offsetParent )
+
+ return {
+ top : offsetTop,
+ left : offsetLeft
+ }
+ },
+ inViewport : function(el, h) {
+ var elH = el.offsetHeight,
+ scrolled = this.scrollY(),
+ viewed = scrolled + this.getViewportH(),
+ elTop = this.getOffset(el).top,
+ elBottom = elTop + elH,
+ // if 0, the element is considered in the viewport as soon as it enters.
+ // if 1, the element is considered in the viewport only when it's fully inside
+ // value in percentage (1 >= h >= 0)
+ h = h || 0;
+
+ return (elTop + elH * h) <= viewed && (elBottom) >= scrolled;
+ },
+ init : function() {
+ this.sections = jQuery(this.config.elems);
+ this.didScroll = false;
+
+ var self = this;
+ // the sections already shown...
+ this.sections.each(function() {
+ console.log(this)
+ if( !self.inViewport( this ) ) {
+ jQuery(this).addClass('scroll-effect-init');
+ }
+ });
+
+ var scrollHandler = function() {
+ if( !self.didScroll ) {
+ self.didScroll = true;
+ setTimeout( function() { self.scrollPage(); }, 60 );
+ }
+ },
+ resizeHandler = function() {
+ function delayed() {
+ self.scrollPage();
+ self.resizeTimeout = null;
+ }
+ if ( self.resizeTimeout ) {
+ clearTimeout( self.resizeTimeout );
+ }
+ self.resizeTimeout = setTimeout( delayed, 200 );
+ };
+
+ window.addEventListener( 'scroll', scrollHandler, false );
+ window.addEventListener( 'resize', resizeHandler, false );
+ },
+ scrollPage : function() {
+ var self = this;
+
+ this.sections.each(function() {
+ if( self.inViewport( this, self.options.viewportFactor ) ) {
+ this.addClass('scroll-effect-animate');
+ }
+ else {
+ // this add class init if it doesn't have it. This will ensure that the items initially in the viewport will also animate on scroll
+ this.addClass('scroll-effect-init');
+ this.removeClass('scroll-effect-animate');
+ }
+ });
+ this.didScroll = false;
+ }
+}
+
+/*
+ * jQuery Cycle Carousel plugin
+ */
+;(function($){
+ function ScrollAbsoluteGallery(options) {
+ this.options = $.extend({
+ activeClass: 'active',
+ mask: 'div.slides-mask',
+ slider: '>ul',
+ slides: '>li',
+ btnPrev: '.btn-prev',
+ btnNext: '.btn-next',
+ pagerLinks: 'ul.pager > li',
+ generatePagination: false,
+ pagerList: '',
+ pagerListItem: ' ',
+ pagerListItemText: 'a',
+ galleryReadyClass: 'gallery-js-ready',
+ currentNumber: 'span.current-num',
+ totalNumber: 'span.total-num',
+ maskAutoSize: false,
+ autoRotation: false,
+ pauseOnHover: false,
+ stretchSlideToMask: false,
+ switchTime: 3000,
+ animSpeed: 500,
+ handleTouch: true,
+ swipeThreshold: 15,
+ vertical: false
+ }, options);
+ this.init();
+ }
+ ScrollAbsoluteGallery.prototype = {
+ init: function() {
+ if(this.options.holder) {
+ this.findElements();
+ this.attachEvents();
+ this.makeCallback('onInit', this);
+ }
+ },
+ findElements: function() {
+ // find structure elements
+ this.holder = $(this.options.holder).addClass(this.options.galleryReadyClass);
+ this.mask = this.holder.find(this.options.mask);
+ this.slider = this.mask.find(this.options.slider);
+ this.slides = this.slider.find(this.options.slides);
+ this.btnPrev = this.holder.find(this.options.btnPrev);
+ this.btnNext = this.holder.find(this.options.btnNext);
+
+ // slide count display
+ this.currentNumber = this.holder.find(this.options.currentNumber);
+ this.totalNumber = this.holder.find(this.options.totalNumber);
+
+ // create gallery pagination
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerLinks = this.buildPagination();
+ } else {
+ this.pagerLinks = this.holder.find(this.options.pagerLinks);
+ }
+
+ // define index variables
+ this.sizeProperty = this.options.vertical ? 'height' : 'width';
+ this.positionProperty = this.options.vertical ? 'top' : 'left';
+ this.animProperty = this.options.vertical ? 'marginTop' : 'marginLeft';
+
+ this.slideSize = this.slides[this.sizeProperty]();
+ this.currentIndex = 0;
+ this.prevIndex = 0;
+
+ // reposition elements
+ this.options.maskAutoSize = this.options.vertical ? false : this.options.maskAutoSize;
+ if(this.options.vertical) {
+ this.mask.css({
+ height: this.slides.innerHeight()
+ });
+ }
+ if(this.options.maskAutoSize){
+ this.mask.css({
+ height: this.slider.height()
+ });
+ }
+ this.slider.css({
+ position: 'relative',
+ height: this.options.vertical ? this.slideSize * this.slides.length : '100%'
+ });
+ this.slides.css({
+ position: 'absolute'
+ }).css(this.positionProperty, -9999).eq(this.currentIndex).css(this.positionProperty, 0);
+ this.refreshState();
+ },
+ buildPagination: function() {
+ var pagerLinks = $();
+ if(!this.pagerHolder) {
+ this.pagerHolder = this.holder.find(this.options.generatePagination);
+ }
+ if(this.pagerHolder.length) {
+ this.pagerHolder.empty();
+ this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
+ for(var i = 0; i < this.slides.length; i++) {
+ $(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i+1);
+ }
+ pagerLinks = this.pagerList.children();
+ }
+ return pagerLinks;
+ },
+ attachEvents: function() {
+ // attach handlers
+ var self = this;
+ if(this.btnPrev.length) {
+ this.btnPrevHandler = function(e) {
+ e.preventDefault();
+ self.prevSlide();
+ };
+ this.btnPrev.click(this.btnPrevHandler);
+ }
+ if(this.btnNext.length) {
+ this.btnNextHandler = function(e) {
+ e.preventDefault();
+ self.nextSlide();
+ };
+ this.btnNext.click(this.btnNextHandler);
+ }
+ if(this.pagerLinks.length) {
+ this.pagerLinksHandler = function(e) {
+ e.preventDefault();
+ self.numSlide(self.pagerLinks.index(e.currentTarget));
+ };
+ this.pagerLinks.click(this.pagerLinksHandler);
+ }
+
+ // handle autorotation pause on hover
+ if(this.options.pauseOnHover) {
+ this.hoverHandler = function() {
+ clearTimeout(self.timer);
+ };
+ this.leaveHandler = function() {
+ self.autoRotate();
+ };
+ this.holder.bind({mouseenter: this.hoverHandler, mouseleave: this.leaveHandler});
+ }
+
+ // handle holder and slides dimensions
+ this.resizeHandler = function() {
+ if(!self.animating) {
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+ self.resizeHolder();
+ self.setSlidesPosition(self.currentIndex);
+ }
+ };
+ $(window).bind('load resize orientationchange', this.resizeHandler);
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+
+ // handle swipe on mobile devices
+ if(this.options.handleTouch && window.Hammer && this.mask.length && this.slides.length > 1 && isTouchDevice) {
+ this.swipeHandler = new Hammer.Manager(this.mask[0]);
+ this.swipeHandler.add(new Hammer.Pan({
+ direction: self.options.vertical ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,
+ threshold: self.options.swipeThreshold
+ }));
+
+ this.swipeHandler.on('panstart', function() {
+ if(self.animating) {
+ self.swipeHandler.stop();
+ } else {
+ clearTimeout(self.timer);
+ }
+ }).on('panmove', function(e) {
+ self.swipeOffset = -self.slideSize + e[self.options.vertical ? 'deltaY' : 'deltaX'];
+ self.slider.css(self.animProperty, self.swipeOffset);
+ clearTimeout(self.timer);
+ }).on('panend', function(e) {
+ if(e.distance > self.options.swipeThreshold) {
+ if(e.offsetDirection === Hammer.DIRECTION_RIGHT || e.offsetDirection === Hammer.DIRECTION_DOWN) {
+ self.nextSlide();
+ } else {
+ self.prevSlide();
+ }
+ } else {
+ var tmpObj = {};
+ tmpObj[self.animProperty] = -self.slideSize;
+ self.slider.animate(tmpObj, {duration: self.options.animSpeed});
+ self.autoRotate();
+ }
+ self.swipeOffset = 0;
+ });
+ }
+
+ // start autorotation
+ this.autoRotate();
+ this.resizeHolder();
+ this.setSlidesPosition(this.currentIndex);
+ },
+ resizeSlides: function() {
+ this.slideSize = this.mask[this.options.vertical ? 'height' : 'width']();
+ this.slides.css(this.sizeProperty, this.slideSize);
+ },
+ resizeHolder: function() {
+ if(this.options.maskAutoSize) {
+ this.mask.css({
+ height: this.slides.eq(this.currentIndex).outerHeight(true)
+ });
+ }
+ },
+ prevSlide: function() {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = -1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex > 0) this.currentIndex--;
+ else this.currentIndex = this.slides.length - 1;
+ this.switchSlide();
+ }
+ },
+ nextSlide: function(fromAutoRotation) {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = 1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex < this.slides.length - 1) this.currentIndex++;
+ else this.currentIndex = 0;
+ this.switchSlide();
+ }
+ },
+ numSlide: function(c) {
+ if(!this.animating && this.currentIndex !== c && this.slides.length > 1) {
+ this.direction = c > this.currentIndex ? 1 : -1;
+ this.prevIndex = this.currentIndex;
+ this.currentIndex = c;
+ this.switchSlide();
+ }
+ },
+ preparePosition: function() {
+ // prepare slides position before animation
+ this.setSlidesPosition(this.prevIndex, this.direction < 0 ? this.currentIndex : null, this.direction > 0 ? this.currentIndex : null, this.direction);
+ },
+ setSlidesPosition: function(index, slideLeft, slideRight, direction) {
+ // reposition holder and nearest slides
+ if(this.slides.length > 1) {
+ var prevIndex = (typeof slideLeft === 'number' ? slideLeft : index > 0 ? index - 1 : this.slides.length - 1);
+ var nextIndex = (typeof slideRight === 'number' ? slideRight : index < this.slides.length - 1 ? index + 1 : 0);
+
+ this.slider.css(this.animProperty, this.swipeOffset ? this.swipeOffset : -this.slideSize);
+ this.slides.css(this.positionProperty, -9999).eq(index).css(this.positionProperty, this.slideSize);
+ if(prevIndex === nextIndex && typeof direction === 'number') {
+ var calcOffset = direction > 0 ? this.slideSize*2 : 0;
+ this.slides.eq(nextIndex).css(this.positionProperty, calcOffset);
+ } else {
+ this.slides.eq(prevIndex).css(this.positionProperty, 0);
+ this.slides.eq(nextIndex).css(this.positionProperty, this.slideSize*2);
+ }
+ }
+ },
+ switchSlide: function() {
+ // prepare positions and calculate offset
+ var self = this;
+ var oldSlide = this.slides.eq(this.prevIndex);
+ var newSlide = this.slides.eq(this.currentIndex);
+ this.animating = true;
+
+ // resize mask to fit slide
+ if(this.options.maskAutoSize) {
+ this.mask.animate({
+ height: newSlide.outerHeight(true)
+ }, {
+ duration: this.options.animSpeed
+ });
+ }
+
+ // start animation
+ var animProps = {};
+ animProps[this.animProperty] = this.direction > 0 ? -this.slideSize*2 : 0;
+ this.preparePosition();
+ this.slider.animate(animProps,{duration:this.options.animSpeed, complete:function() {
+ self.setSlidesPosition(self.currentIndex);
+
+ // start autorotation
+ self.animating = false;
+ self.autoRotate();
+
+ // onchange callback
+ self.makeCallback('onChange', self);
+ }});
+
+ // refresh classes
+ this.refreshState();
+
+ // onchange callback
+ this.makeCallback('onBeforeChange', this);
+ },
+ refreshState: function(initial) {
+ // slide change function
+ this.slides.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+ this.pagerLinks.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+
+ // display current slide number
+ this.currentNumber.html(this.currentIndex + 1);
+ this.totalNumber.html(this.slides.length);
+
+ // add class if not enough slides
+ this.holder.toggleClass('not-enough-slides', this.slides.length === 1);
+ },
+ autoRotate: function() {
+ var self = this;
+ clearTimeout(this.timer);
+ if(this.options.autoRotation) {
+ this.timer = setTimeout(function() {
+ self.nextSlide();
+ }, this.options.switchTime);
+ }
+ },
+ makeCallback: function(name) {
+ if(typeof this.options[name] === 'function') {
+ var args = Array.prototype.slice.call(arguments);
+ args.shift();
+ this.options[name].apply(this, args);
+ }
+ },
+ destroy: function() {
+ // destroy handler
+ this.btnPrev.unbind('click', this.btnPrevHandler);
+ this.btnNext.unbind('click', this.btnNextHandler);
+ this.pagerLinks.unbind('click', this.pagerLinksHandler);
+ this.holder.unbind('mouseenter', this.hoverHandler);
+ this.holder.unbind('mouseleave', this.leaveHandler);
+ $(window).unbind('load resize orientationchange', this.resizeHandler);
+ clearTimeout(this.timer);
+
+ // destroy swipe handler
+ if(this.swipeHandler) {
+ this.swipeHandler.destroy();
+ }
+
+ // remove inline styles, classes and pagination
+ this.holder.removeClass(this.options.galleryReadyClass);
+ this.slider.add(this.slides).removeAttr('style');
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerHolder.empty();
+ }
+ }
+ };
+
+ // detect device type
+ var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
+
+ // jquery plugin
+ $.fn.scrollAbsoluteGallery = function(opt){
+ return this.each(function(){
+ $(this).data('ScrollAbsoluteGallery', new ScrollAbsoluteGallery($.extend(opt,{holder:this})));
+ });
+ };
+}(jQuery));
+
+/*
+ * Image Stretch module
+ */
+var ImageStretcher = {
+ getDimensions: function(data) {
+ // calculate element coords to fit in mask
+ var ratio = data.imageRatio || (data.imageWidth / data.imageHeight),
+ slideWidth = data.maskWidth,
+ slideHeight = slideWidth / ratio;
+
+ if(slideHeight < data.maskHeight) {
+ slideHeight = data.maskHeight;
+ slideWidth = slideHeight * ratio;
+ }
+ return {
+ width: slideWidth,
+ height: slideHeight,
+ top: (data.maskHeight - slideHeight) / 2,
+ left: (data.maskWidth - slideWidth) / 2
+ };
+ },
+ getRatio: function(image) {
+ if(image.prop('naturalWidth')) {
+ return image.prop('naturalWidth') / image.prop('naturalHeight');
+ } else {
+ var img = new Image();
+ img.src = image.prop('src');
+ return img.width / img.height;
+ }
+ },
+ imageLoaded: function(image, callback) {
+ var self = this;
+ var loadHandler = function() {
+ callback.call(self);
+ };
+ if(image.prop('complete')) {
+ loadHandler();
+ } else {
+ image.one('load', loadHandler);
+ }
+ },
+ resizeHandler: function() {
+ var self = this;
+ jQuery.each(this.imgList, function(index, item) {
+ if(item.image.prop('complete')) {
+ self.resizeImage(item.image, item.container);
+ }
+ });
+ },
+ resizeImage: function(image, container) {
+ this.imageLoaded(image, function() {
+ var styles = this.getDimensions({
+ imageRatio: this.getRatio(image),
+ maskWidth: container.width(),
+ maskHeight: container.height()
+ });
+ image.css({
+ width: styles.width,
+ height: styles.height,
+ marginTop: styles.top,
+ marginLeft: styles.left
+ });
+ });
+ },
+ add: function(options) {
+ var container = jQuery(options.container ? options.container : window),
+ image = typeof options.image === 'string' ? container.find(options.image) : jQuery(options.image);
+
+ // resize image
+ this.resizeImage(image, container);
+
+ // add resize handler once if needed
+ if(!this.win) {
+ this.resizeHandler = jQuery.proxy(this.resizeHandler, this);
+ this.imgList = [];
+ this.win = jQuery(window);
+ this.win.on('resize orientationchange', this.resizeHandler);
+ }
+
+ // store item in collection
+ this.imgList.push({
+ container: container,
+ image: image
+ });
+ }
+};
+
+/*! Hammer.JS - v2.0.4 - 2014-09-28
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2014 Jorik Tangelder;
+ * Licensed under the MIT license */
+if(Object.create){!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;af?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;sn;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),o.loop!==!0||t||($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:1},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;cO;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});
\ No newline at end of file
diff --git a/js/.sublf4b.tmp b/js/.sublf4b.tmp
new file mode 100644
index 00000000..f33f20df
--- /dev/null
+++ b/js/.sublf4b.tmp
@@ -0,0 +1,610 @@
+// page init
+jQuery(function() {
+ initCycleCarousel();
+ initBackgroundResize();
+ // menu
+ menu.init();
+ // scroller
+ scroller.init();
+});
+
+// cycle scroll gallery init
+function initCycleCarousel() {
+ jQuery('.cycle-gallery').scrollAbsoluteGallery({
+ mask: '.mask',
+ slider: '.slideset',
+ slides: '.slide',
+ btnPrev: 'a.btn-prev',
+ btnNext: 'a.btn-next',
+ pagerLinks: '.pagination li',
+ stretchSlideToMask: true,
+ pauseOnHover: true,
+ maskAutoSize: true,
+ autoRotation: false,
+ switchTime: 3000,
+ animSpeed: 500
+ });
+}
+
+// stretch background to fill blocks
+function initBackgroundResize() {
+ jQuery('.visual-area').each(function() {
+ ImageStretcher.add({
+ container: this,
+ image: 'img.bg-stretch'
+ });
+ });
+}
+
+var body = $('body'),
+ // menu for mobile view
+ menu = {
+ config : {
+ trigger : jQuery('.nav-opener'),
+ open : false
+ },
+ init : function() {
+ this.config.trigger.click(this.toggle.bind(this));
+ },
+ toggle : function() {
+ if(this.config.open) {
+ body.removeClass('nav-active');
+ }
+ else {
+ body.addClass('nav-active');
+ }
+ this.config.open = !this.config.open;
+ }
+ };
+
+// move some elements on scroll
+var scroller = {
+ config : {
+ docElem : window.document.documentElement,
+ // The viewportFactor defines how much of the appearing item has to be visible in order to trigger the animation
+ // if we'd use a value of 0, this would mean that it would add the animation class as soon as the item is in the viewport.
+ // If we were to use the value of 1, the animation would only be triggered when we see all of the item in the viewport (100% of it)
+ viewportFactor : 0.2,
+ elems : '.slide-holder'
+ },
+ getViewportH : function() {
+ var client = this.config.docElem['clientHeight'],
+ inner = window['innerHeight'];
+
+ if( client < inner )
+ return inner;
+ else
+ return client;
+ },
+ scrollY : function() {
+ return window.pageYOffset || this.config.docElem.scrollTop;
+ },
+ getOffset : function(el) {
+ var offsetTop = 0, offsetLeft = 0;
+ do {
+ if ( !isNaN( el.offsetTop ) ) {
+ offsetTop += el.offsetTop;
+ }
+ if ( !isNaN( el.offsetLeft ) ) {
+ offsetLeft += el.offsetLeft;
+ }
+ } while( el = el.offsetParent )
+
+ return {
+ top : offsetTop,
+ left : offsetLeft
+ }
+ },
+ inViewport : function(el, h) {
+ var elH = el.offsetHeight,
+ scrolled = this.scrollY(),
+ viewed = scrolled + this.getViewportH(),
+ elTop = this.getOffset(el).top,
+ elBottom = elTop + elH,
+ // if 0, the element is considered in the viewport as soon as it enters.
+ // if 1, the element is considered in the viewport only when it's fully inside
+ // value in percentage (1 >= h >= 0)
+ h = h || 0;
+
+ return (elTop + elH * h) <= viewed && (elBottom) >= scrolled;
+ },
+ init : function() {
+ this.sections = jQuery(this.config.elems);
+ this.didScroll = false;
+
+ var self = this;
+ // the sections already shown...
+ this.sections.each(function() {
+ if( !self.inViewport( this ) ) {
+ jQuery(this).addClass('scroll-effect-init');
+ }
+ });
+
+ var scrollHandler = function() {
+ if( !self.didScroll ) {
+ self.didScroll = true;
+ setTimeout( function() { self.scrollPage(); }, 60 );
+ }
+ },
+ resizeHandler = function() {
+ function delayed() {
+ self.scrollPage();
+ self.resizeTimeout = null;
+ }
+ if ( self.resizeTimeout ) {
+ clearTimeout( self.resizeTimeout );
+ }
+ self.resizeTimeout = setTimeout( delayed, 200 );
+ };
+
+ window.addEventListener( 'scroll', scrollHandler, false );
+ window.addEventListener( 'resize', resizeHandler, false );
+ },
+ scrollPage : function() {
+ var self = this;
+
+ this.sections.each(function() {
+ if( self.inViewport( this, self.config.viewportFactor ) ) {
+ jQuery(this).addClass('scroll-effect-animate');
+ }
+ else {
+ // this add class init if it doesn't have it. This will ensure that the items initially in the viewport will also animate on scroll
+ jQuery(this).addClass('scroll-effect-init');
+ jQuery(this).removeClass('scroll-effect-animate');
+ }
+ });
+ this.didScroll = false;
+ }
+}
+
+/*
+ * jQuery Cycle Carousel plugin
+ */
+;(function($){
+ function ScrollAbsoluteGallery(options) {
+ this.options = $.extend({
+ activeClass: 'active',
+ mask: 'div.slides-mask',
+ slider: '>ul',
+ slides: '>li',
+ btnPrev: '.btn-prev',
+ btnNext: '.btn-next',
+ pagerLinks: 'ul.pager > li',
+ generatePagination: false,
+ pagerList: '',
+ pagerListItem: ' ',
+ pagerListItemText: 'a',
+ galleryReadyClass: 'gallery-js-ready',
+ currentNumber: 'span.current-num',
+ totalNumber: 'span.total-num',
+ maskAutoSize: false,
+ autoRotation: false,
+ pauseOnHover: false,
+ stretchSlideToMask: false,
+ switchTime: 3000,
+ animSpeed: 500,
+ handleTouch: true,
+ swipeThreshold: 15,
+ vertical: false
+ }, options);
+ this.init();
+ }
+ ScrollAbsoluteGallery.prototype = {
+ init: function() {
+ if(this.options.holder) {
+ this.findElements();
+ this.attachEvents();
+ this.makeCallback('onInit', this);
+ }
+ },
+ findElements: function() {
+ // find structure elements
+ this.holder = $(this.options.holder).addClass(this.options.galleryReadyClass);
+ this.mask = this.holder.find(this.options.mask);
+ this.slider = this.mask.find(this.options.slider);
+ this.slides = this.slider.find(this.options.slides);
+ this.btnPrev = this.holder.find(this.options.btnPrev);
+ this.btnNext = this.holder.find(this.options.btnNext);
+
+ // slide count display
+ this.currentNumber = this.holder.find(this.options.currentNumber);
+ this.totalNumber = this.holder.find(this.options.totalNumber);
+
+ // create gallery pagination
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerLinks = this.buildPagination();
+ } else {
+ this.pagerLinks = this.holder.find(this.options.pagerLinks);
+ }
+
+ // define index variables
+ this.sizeProperty = this.options.vertical ? 'height' : 'width';
+ this.positionProperty = this.options.vertical ? 'top' : 'left';
+ this.animProperty = this.options.vertical ? 'marginTop' : 'marginLeft';
+
+ this.slideSize = this.slides[this.sizeProperty]();
+ this.currentIndex = 0;
+ this.prevIndex = 0;
+
+ // reposition elements
+ this.options.maskAutoSize = this.options.vertical ? false : this.options.maskAutoSize;
+ if(this.options.vertical) {
+ this.mask.css({
+ height: this.slides.innerHeight()
+ });
+ }
+ if(this.options.maskAutoSize){
+ this.mask.css({
+ height: this.slider.height()
+ });
+ }
+ this.slider.css({
+ position: 'relative',
+ height: this.options.vertical ? this.slideSize * this.slides.length : '100%'
+ });
+ this.slides.css({
+ position: 'absolute'
+ }).css(this.positionProperty, -9999).eq(this.currentIndex).css(this.positionProperty, 0);
+ this.refreshState();
+ },
+ buildPagination: function() {
+ var pagerLinks = $();
+ if(!this.pagerHolder) {
+ this.pagerHolder = this.holder.find(this.options.generatePagination);
+ }
+ if(this.pagerHolder.length) {
+ this.pagerHolder.empty();
+ this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
+ for(var i = 0; i < this.slides.length; i++) {
+ $(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i+1);
+ }
+ pagerLinks = this.pagerList.children();
+ }
+ return pagerLinks;
+ },
+ attachEvents: function() {
+ // attach handlers
+ var self = this;
+ if(this.btnPrev.length) {
+ this.btnPrevHandler = function(e) {
+ e.preventDefault();
+ self.prevSlide();
+ };
+ this.btnPrev.click(this.btnPrevHandler);
+ }
+ if(this.btnNext.length) {
+ this.btnNextHandler = function(e) {
+ e.preventDefault();
+ self.nextSlide();
+ };
+ this.btnNext.click(this.btnNextHandler);
+ }
+ if(this.pagerLinks.length) {
+ this.pagerLinksHandler = function(e) {
+ e.preventDefault();
+ self.numSlide(self.pagerLinks.index(e.currentTarget));
+ };
+ this.pagerLinks.click(this.pagerLinksHandler);
+ }
+
+ // handle autorotation pause on hover
+ if(this.options.pauseOnHover) {
+ this.hoverHandler = function() {
+ clearTimeout(self.timer);
+ };
+ this.leaveHandler = function() {
+ self.autoRotate();
+ };
+ this.holder.bind({mouseenter: this.hoverHandler, mouseleave: this.leaveHandler});
+ }
+
+ // handle holder and slides dimensions
+ this.resizeHandler = function() {
+ if(!self.animating) {
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+ self.resizeHolder();
+ self.setSlidesPosition(self.currentIndex);
+ }
+ };
+ $(window).bind('load resize orientationchange', this.resizeHandler);
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+
+ // handle swipe on mobile devices
+ if(this.options.handleTouch && window.Hammer && this.mask.length && this.slides.length > 1 && isTouchDevice) {
+ this.swipeHandler = new Hammer.Manager(this.mask[0]);
+ this.swipeHandler.add(new Hammer.Pan({
+ direction: self.options.vertical ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,
+ threshold: self.options.swipeThreshold
+ }));
+
+ this.swipeHandler.on('panstart', function() {
+ if(self.animating) {
+ self.swipeHandler.stop();
+ } else {
+ clearTimeout(self.timer);
+ }
+ }).on('panmove', function(e) {
+ self.swipeOffset = -self.slideSize + e[self.options.vertical ? 'deltaY' : 'deltaX'];
+ self.slider.css(self.animProperty, self.swipeOffset);
+ clearTimeout(self.timer);
+ }).on('panend', function(e) {
+ if(e.distance > self.options.swipeThreshold) {
+ if(e.offsetDirection === Hammer.DIRECTION_RIGHT || e.offsetDirection === Hammer.DIRECTION_DOWN) {
+ self.nextSlide();
+ } else {
+ self.prevSlide();
+ }
+ } else {
+ var tmpObj = {};
+ tmpObj[self.animProperty] = -self.slideSize;
+ self.slider.animate(tmpObj, {duration: self.options.animSpeed});
+ self.autoRotate();
+ }
+ self.swipeOffset = 0;
+ });
+ }
+
+ // start autorotation
+ this.autoRotate();
+ this.resizeHolder();
+ this.setSlidesPosition(this.currentIndex);
+ },
+ resizeSlides: function() {
+ this.slideSize = this.mask[this.options.vertical ? 'height' : 'width']();
+ this.slides.css(this.sizeProperty, this.slideSize);
+ },
+ resizeHolder: function() {
+ if(this.options.maskAutoSize) {
+ this.mask.css({
+ height: this.slides.eq(this.currentIndex).outerHeight(true)
+ });
+ }
+ },
+ prevSlide: function() {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = -1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex > 0) this.currentIndex--;
+ else this.currentIndex = this.slides.length - 1;
+ this.switchSlide();
+ }
+ },
+ nextSlide: function(fromAutoRotation) {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = 1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex < this.slides.length - 1) this.currentIndex++;
+ else this.currentIndex = 0;
+ this.switchSlide();
+ }
+ },
+ numSlide: function(c) {
+ if(!this.animating && this.currentIndex !== c && this.slides.length > 1) {
+ this.direction = c > this.currentIndex ? 1 : -1;
+ this.prevIndex = this.currentIndex;
+ this.currentIndex = c;
+ this.switchSlide();
+ }
+ },
+ preparePosition: function() {
+ // prepare slides position before animation
+ this.setSlidesPosition(this.prevIndex, this.direction < 0 ? this.currentIndex : null, this.direction > 0 ? this.currentIndex : null, this.direction);
+ },
+ setSlidesPosition: function(index, slideLeft, slideRight, direction) {
+ // reposition holder and nearest slides
+ if(this.slides.length > 1) {
+ var prevIndex = (typeof slideLeft === 'number' ? slideLeft : index > 0 ? index - 1 : this.slides.length - 1);
+ var nextIndex = (typeof slideRight === 'number' ? slideRight : index < this.slides.length - 1 ? index + 1 : 0);
+
+ this.slider.css(this.animProperty, this.swipeOffset ? this.swipeOffset : -this.slideSize);
+ this.slides.css(this.positionProperty, -9999).eq(index).css(this.positionProperty, this.slideSize);
+ if(prevIndex === nextIndex && typeof direction === 'number') {
+ var calcOffset = direction > 0 ? this.slideSize*2 : 0;
+ this.slides.eq(nextIndex).css(this.positionProperty, calcOffset);
+ } else {
+ this.slides.eq(prevIndex).css(this.positionProperty, 0);
+ this.slides.eq(nextIndex).css(this.positionProperty, this.slideSize*2);
+ }
+ }
+ },
+ switchSlide: function() {
+ // prepare positions and calculate offset
+ var self = this;
+ var oldSlide = this.slides.eq(this.prevIndex);
+ var newSlide = this.slides.eq(this.currentIndex);
+ this.animating = true;
+
+ // resize mask to fit slide
+ if(this.options.maskAutoSize) {
+ this.mask.animate({
+ height: newSlide.outerHeight(true)
+ }, {
+ duration: this.options.animSpeed
+ });
+ }
+
+ // start animation
+ var animProps = {};
+ animProps[this.animProperty] = this.direction > 0 ? -this.slideSize*2 : 0;
+ this.preparePosition();
+ this.slider.animate(animProps,{duration:this.options.animSpeed, complete:function() {
+ self.setSlidesPosition(self.currentIndex);
+
+ // start autorotation
+ self.animating = false;
+ self.autoRotate();
+
+ // onchange callback
+ self.makeCallback('onChange', self);
+ }});
+
+ // refresh classes
+ this.refreshState();
+
+ // onchange callback
+ this.makeCallback('onBeforeChange', this);
+ },
+ refreshState: function(initial) {
+ // slide change function
+ this.slides.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+ this.pagerLinks.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+
+ // display current slide number
+ this.currentNumber.html(this.currentIndex + 1);
+ this.totalNumber.html(this.slides.length);
+
+ // add class if not enough slides
+ this.holder.toggleClass('not-enough-slides', this.slides.length === 1);
+ },
+ autoRotate: function() {
+ var self = this;
+ clearTimeout(this.timer);
+ if(this.options.autoRotation) {
+ this.timer = setTimeout(function() {
+ self.nextSlide();
+ }, this.options.switchTime);
+ }
+ },
+ makeCallback: function(name) {
+ if(typeof this.options[name] === 'function') {
+ var args = Array.prototype.slice.call(arguments);
+ args.shift();
+ this.options[name].apply(this, args);
+ }
+ },
+ destroy: function() {
+ // destroy handler
+ this.btnPrev.unbind('click', this.btnPrevHandler);
+ this.btnNext.unbind('click', this.btnNextHandler);
+ this.pagerLinks.unbind('click', this.pagerLinksHandler);
+ this.holder.unbind('mouseenter', this.hoverHandler);
+ this.holder.unbind('mouseleave', this.leaveHandler);
+ $(window).unbind('load resize orientationchange', this.resizeHandler);
+ clearTimeout(this.timer);
+
+ // destroy swipe handler
+ if(this.swipeHandler) {
+ this.swipeHandler.destroy();
+ }
+
+ // remove inline styles, classes and pagination
+ this.holder.removeClass(this.options.galleryReadyClass);
+ this.slider.add(this.slides).removeAttr('style');
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerHolder.empty();
+ }
+ }
+ };
+
+ // detect device type
+ var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
+
+ // jquery plugin
+ $.fn.scrollAbsoluteGallery = function(opt){
+ return this.each(function(){
+ $(this).data('ScrollAbsoluteGallery', new ScrollAbsoluteGallery($.extend(opt,{holder:this})));
+ });
+ };
+}(jQuery));
+
+/*
+ * Image Stretch module
+ */
+var ImageStretcher = {
+ getDimensions: function(data) {
+ // calculate element coords to fit in mask
+ var ratio = data.imageRatio || (data.imageWidth / data.imageHeight),
+ slideWidth = data.maskWidth,
+ slideHeight = slideWidth / ratio;
+
+ if(slideHeight < data.maskHeight) {
+ slideHeight = data.maskHeight;
+ slideWidth = slideHeight * ratio;
+ }
+ return {
+ width: slideWidth,
+ height: slideHeight,
+ top: (data.maskHeight - slideHeight) / 2,
+ left: (data.maskWidth - slideWidth) / 2
+ };
+ },
+ getRatio: function(image) {
+ if(image.prop('naturalWidth')) {
+ return image.prop('naturalWidth') / image.prop('naturalHeight');
+ } else {
+ var img = new Image();
+ img.src = image.prop('src');
+ return img.width / img.height;
+ }
+ },
+ imageLoaded: function(image, callback) {
+ var self = this;
+ var loadHandler = function() {
+ callback.call(self);
+ };
+ if(image.prop('complete')) {
+ loadHandler();
+ } else {
+ image.one('load', loadHandler);
+ }
+ },
+ resizeHandler: function() {
+ var self = this;
+ jQuery.each(this.imgList, function(index, item) {
+ if(item.image.prop('complete')) {
+ self.resizeImage(item.image, item.container);
+ }
+ });
+ },
+ resizeImage: function(image, container) {
+ this.imageLoaded(image, function() {
+ var styles = this.getDimensions({
+ imageRatio: this.getRatio(image),
+ maskWidth: container.width(),
+ maskHeight: container.height()
+ });
+ image.css({
+ width: styles.width,
+ height: styles.height,
+ marginTop: styles.top,
+ marginLeft: styles.left
+ });
+ });
+ },
+ add: function(options) {
+ var container = jQuery(options.container ? options.container : window),
+ image = typeof options.image === 'string' ? container.find(options.image) : jQuery(options.image);
+
+ // resize image
+ this.resizeImage(image, container);
+
+ // add resize handler once if needed
+ if(!this.win) {
+ this.resizeHandler = jQuery.proxy(this.resizeHandler, this);
+ this.imgList = [];
+ this.win = jQuery(window);
+ this.win.on('resize orientationchange', this.resizeHandler);
+ }
+
+ // store item in collection
+ this.imgList.push({
+ container: container,
+ image: image
+ });
+ }
+};
+
+/*! Hammer.JS - v2.0.4 - 2014-09-28
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2014 Jorik Tangelder;
+ * Licensed under the MIT license */
+if(Object.create){!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;af?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;sn;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),o.loop!==!0||t||($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:1},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;cO;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});
\ No newline at end of file
diff --git a/js/.sublf6c.tmp b/js/.sublf6c.tmp
new file mode 100644
index 00000000..7b489760
--- /dev/null
+++ b/js/.sublf6c.tmp
@@ -0,0 +1,610 @@
+// page init
+jQuery(function() {
+ initCycleCarousel();
+ initBackgroundResize();
+ // menu
+ menu.init();
+ // scroller
+ scroller.init();
+});
+
+// cycle scroll gallery init
+function initCycleCarousel() {
+ jQuery('.cycle-gallery').scrollAbsoluteGallery({
+ mask: '.mask',
+ slider: '.slideset',
+ slides: '.slide',
+ btnPrev: 'a.btn-prev',
+ btnNext: 'a.btn-next',
+ pagerLinks: '.pagination li',
+ stretchSlideToMask: true,
+ pauseOnHover: true,
+ maskAutoSize: true,
+ autoRotation: false,
+ switchTime: 3000,
+ animSpeed: 500
+ });
+}
+
+// stretch background to fill blocks
+function initBackgroundResize() {
+ jQuery('.visual-area').each(function() {
+ ImageStretcher.add({
+ container: this,
+ image: 'img.bg-stretch'
+ });
+ });
+}
+
+var body = $('body'),
+ // menu for mobile view
+ menu = {
+ config : {
+ trigger : jQuery('.nav-opener'),
+ open : false
+ },
+ init : function() {
+ this.config.trigger.click(this.toggle.bind(this));
+ },
+ toggle : function() {
+ if(this.config.open) {
+ body.removeClass('nav-active');
+ }
+ else {
+ body.addClass('nav-active');
+ }
+ this.config.open = !this.config.open;
+ }
+ };
+
+// move some elements on scroll
+var scroller = {
+ config : {
+ docElem : window.document.documentElement,
+ // The viewportFactor defines how much of the appearing item has to be visible in order to trigger the animation
+ // if we'd use a value of 0, this would mean that it would add the animation class as soon as the item is in the viewport.
+ // If we were to use the value of 1, the animation would only be triggered when we see all of the item in the viewport (100% of it)
+ viewportFactor : 0.2,
+ elems : '.slide-holder'
+ },
+ getViewportH : function() {
+ var client = this.config.docElem['clientHeight'],
+ inner = window['innerHeight'];
+
+ if( client < inner )
+ return inner;
+ else
+ return client;
+ },
+ scrollY : function() {
+ return window.pageYOffset || this.config.docElem.scrollTop;
+ },
+ getOffset : function(el) {
+ var offsetTop = 0, offsetLeft = 0;
+ do {
+ if ( !isNaN( el.offsetTop ) ) {
+ offsetTop += el.offsetTop;
+ }
+ if ( !isNaN( el.offsetLeft ) ) {
+ offsetLeft += el.offsetLeft;
+ }
+ } while( el = el.offsetParent )
+
+ return {
+ top : offsetTop,
+ left : offsetLeft
+ }
+ },
+ inViewport : function(el, h) {
+ var elH = el.offsetHeight,
+ scrolled = this.scrollY(),
+ viewed = scrolled + this.getViewportH(),
+ elTop = this.getOffset(el).top,
+ elBottom = elTop + elH,
+ // if 0, the element is considered in the viewport as soon as it enters.
+ // if 1, the element is considered in the viewport only when it's fully inside
+ // value in percentage (1 >= h >= 0)
+ h = h || 0;
+
+ return (elTop + elH * h) <= viewed && (elBottom) >= scrolled;
+ },
+ init : function() {
+ this.sections = jQuery(this.config.elems);
+ this.didScroll = false;
+
+ var self = this;
+ // the sections already shown...
+ this.sections.each(function() {
+ if( !self.inViewport( this ) ) {
+ jQuery(this).addClass('scroll-effect-init');
+ }
+ });
+
+ var scrollHandler = function() {
+ if( !self.didScroll ) {
+ self.didScroll = true;
+ setTimeout( function() { self.scrollPage(); }, 60 );
+ }
+ },
+ resizeHandler = function() {
+ function delayed() {
+ self.scrollPage();
+ self.resizeTimeout = null;
+ }
+ if ( self.resizeTimeout ) {
+ clearTimeout( self.resizeTimeout );
+ }
+ self.resizeTimeout = setTimeout( delayed, 200 );
+ };
+
+ window.addEventListener( 'scroll', scrollHandler, false );
+ //window.addEventListener( 'resize', resizeHandler, false );
+ },
+ scrollPage : function() {
+ var self = this;
+
+ this.sections.each(function() {
+ if( self.inViewport( this, self.config.viewportFactor ) ) {
+ jQuery(this).addClass('scroll-effect-animate');
+ }
+ else {
+ // this add class init if it doesn't have it. This will ensure that the items initially in the viewport will also animate on scroll
+ jQuery(this).addClass('scroll-effect-init');
+ jQuery(this).removeClass('scroll-effect-animate');
+ }
+ });
+ this.didScroll = false;
+ }
+}
+
+/*
+ * jQuery Cycle Carousel plugin
+ */
+;(function($){
+ function ScrollAbsoluteGallery(options) {
+ this.options = $.extend({
+ activeClass: 'active',
+ mask: 'div.slides-mask',
+ slider: '>ul',
+ slides: '>li',
+ btnPrev: '.btn-prev',
+ btnNext: '.btn-next',
+ pagerLinks: 'ul.pager > li',
+ generatePagination: false,
+ pagerList: '',
+ pagerListItem: ' ',
+ pagerListItemText: 'a',
+ galleryReadyClass: 'gallery-js-ready',
+ currentNumber: 'span.current-num',
+ totalNumber: 'span.total-num',
+ maskAutoSize: false,
+ autoRotation: false,
+ pauseOnHover: false,
+ stretchSlideToMask: false,
+ switchTime: 3000,
+ animSpeed: 500,
+ handleTouch: true,
+ swipeThreshold: 15,
+ vertical: false
+ }, options);
+ this.init();
+ }
+ ScrollAbsoluteGallery.prototype = {
+ init: function() {
+ if(this.options.holder) {
+ this.findElements();
+ this.attachEvents();
+ this.makeCallback('onInit', this);
+ }
+ },
+ findElements: function() {
+ // find structure elements
+ this.holder = $(this.options.holder).addClass(this.options.galleryReadyClass);
+ this.mask = this.holder.find(this.options.mask);
+ this.slider = this.mask.find(this.options.slider);
+ this.slides = this.slider.find(this.options.slides);
+ this.btnPrev = this.holder.find(this.options.btnPrev);
+ this.btnNext = this.holder.find(this.options.btnNext);
+
+ // slide count display
+ this.currentNumber = this.holder.find(this.options.currentNumber);
+ this.totalNumber = this.holder.find(this.options.totalNumber);
+
+ // create gallery pagination
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerLinks = this.buildPagination();
+ } else {
+ this.pagerLinks = this.holder.find(this.options.pagerLinks);
+ }
+
+ // define index variables
+ this.sizeProperty = this.options.vertical ? 'height' : 'width';
+ this.positionProperty = this.options.vertical ? 'top' : 'left';
+ this.animProperty = this.options.vertical ? 'marginTop' : 'marginLeft';
+
+ this.slideSize = this.slides[this.sizeProperty]();
+ this.currentIndex = 0;
+ this.prevIndex = 0;
+
+ // reposition elements
+ this.options.maskAutoSize = this.options.vertical ? false : this.options.maskAutoSize;
+ if(this.options.vertical) {
+ this.mask.css({
+ height: this.slides.innerHeight()
+ });
+ }
+ if(this.options.maskAutoSize){
+ this.mask.css({
+ height: this.slider.height()
+ });
+ }
+ this.slider.css({
+ position: 'relative',
+ height: this.options.vertical ? this.slideSize * this.slides.length : '100%'
+ });
+ this.slides.css({
+ position: 'absolute'
+ }).css(this.positionProperty, -9999).eq(this.currentIndex).css(this.positionProperty, 0);
+ this.refreshState();
+ },
+ buildPagination: function() {
+ var pagerLinks = $();
+ if(!this.pagerHolder) {
+ this.pagerHolder = this.holder.find(this.options.generatePagination);
+ }
+ if(this.pagerHolder.length) {
+ this.pagerHolder.empty();
+ this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
+ for(var i = 0; i < this.slides.length; i++) {
+ $(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i+1);
+ }
+ pagerLinks = this.pagerList.children();
+ }
+ return pagerLinks;
+ },
+ attachEvents: function() {
+ // attach handlers
+ var self = this;
+ if(this.btnPrev.length) {
+ this.btnPrevHandler = function(e) {
+ e.preventDefault();
+ self.prevSlide();
+ };
+ this.btnPrev.click(this.btnPrevHandler);
+ }
+ if(this.btnNext.length) {
+ this.btnNextHandler = function(e) {
+ e.preventDefault();
+ self.nextSlide();
+ };
+ this.btnNext.click(this.btnNextHandler);
+ }
+ if(this.pagerLinks.length) {
+ this.pagerLinksHandler = function(e) {
+ e.preventDefault();
+ self.numSlide(self.pagerLinks.index(e.currentTarget));
+ };
+ this.pagerLinks.click(this.pagerLinksHandler);
+ }
+
+ // handle autorotation pause on hover
+ if(this.options.pauseOnHover) {
+ this.hoverHandler = function() {
+ clearTimeout(self.timer);
+ };
+ this.leaveHandler = function() {
+ self.autoRotate();
+ };
+ this.holder.bind({mouseenter: this.hoverHandler, mouseleave: this.leaveHandler});
+ }
+
+ // handle holder and slides dimensions
+ this.resizeHandler = function() {
+ if(!self.animating) {
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+ self.resizeHolder();
+ self.setSlidesPosition(self.currentIndex);
+ }
+ };
+ $(window).bind('load resize orientationchange', this.resizeHandler);
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+
+ // handle swipe on mobile devices
+ if(this.options.handleTouch && window.Hammer && this.mask.length && this.slides.length > 1 && isTouchDevice) {
+ this.swipeHandler = new Hammer.Manager(this.mask[0]);
+ this.swipeHandler.add(new Hammer.Pan({
+ direction: self.options.vertical ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,
+ threshold: self.options.swipeThreshold
+ }));
+
+ this.swipeHandler.on('panstart', function() {
+ if(self.animating) {
+ self.swipeHandler.stop();
+ } else {
+ clearTimeout(self.timer);
+ }
+ }).on('panmove', function(e) {
+ self.swipeOffset = -self.slideSize + e[self.options.vertical ? 'deltaY' : 'deltaX'];
+ self.slider.css(self.animProperty, self.swipeOffset);
+ clearTimeout(self.timer);
+ }).on('panend', function(e) {
+ if(e.distance > self.options.swipeThreshold) {
+ if(e.offsetDirection === Hammer.DIRECTION_RIGHT || e.offsetDirection === Hammer.DIRECTION_DOWN) {
+ self.nextSlide();
+ } else {
+ self.prevSlide();
+ }
+ } else {
+ var tmpObj = {};
+ tmpObj[self.animProperty] = -self.slideSize;
+ self.slider.animate(tmpObj, {duration: self.options.animSpeed});
+ self.autoRotate();
+ }
+ self.swipeOffset = 0;
+ });
+ }
+
+ // start autorotation
+ this.autoRotate();
+ this.resizeHolder();
+ this.setSlidesPosition(this.currentIndex);
+ },
+ resizeSlides: function() {
+ this.slideSize = this.mask[this.options.vertical ? 'height' : 'width']();
+ this.slides.css(this.sizeProperty, this.slideSize);
+ },
+ resizeHolder: function() {
+ if(this.options.maskAutoSize) {
+ this.mask.css({
+ height: this.slides.eq(this.currentIndex).outerHeight(true)
+ });
+ }
+ },
+ prevSlide: function() {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = -1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex > 0) this.currentIndex--;
+ else this.currentIndex = this.slides.length - 1;
+ this.switchSlide();
+ }
+ },
+ nextSlide: function(fromAutoRotation) {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = 1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex < this.slides.length - 1) this.currentIndex++;
+ else this.currentIndex = 0;
+ this.switchSlide();
+ }
+ },
+ numSlide: function(c) {
+ if(!this.animating && this.currentIndex !== c && this.slides.length > 1) {
+ this.direction = c > this.currentIndex ? 1 : -1;
+ this.prevIndex = this.currentIndex;
+ this.currentIndex = c;
+ this.switchSlide();
+ }
+ },
+ preparePosition: function() {
+ // prepare slides position before animation
+ this.setSlidesPosition(this.prevIndex, this.direction < 0 ? this.currentIndex : null, this.direction > 0 ? this.currentIndex : null, this.direction);
+ },
+ setSlidesPosition: function(index, slideLeft, slideRight, direction) {
+ // reposition holder and nearest slides
+ if(this.slides.length > 1) {
+ var prevIndex = (typeof slideLeft === 'number' ? slideLeft : index > 0 ? index - 1 : this.slides.length - 1);
+ var nextIndex = (typeof slideRight === 'number' ? slideRight : index < this.slides.length - 1 ? index + 1 : 0);
+
+ this.slider.css(this.animProperty, this.swipeOffset ? this.swipeOffset : -this.slideSize);
+ this.slides.css(this.positionProperty, -9999).eq(index).css(this.positionProperty, this.slideSize);
+ if(prevIndex === nextIndex && typeof direction === 'number') {
+ var calcOffset = direction > 0 ? this.slideSize*2 : 0;
+ this.slides.eq(nextIndex).css(this.positionProperty, calcOffset);
+ } else {
+ this.slides.eq(prevIndex).css(this.positionProperty, 0);
+ this.slides.eq(nextIndex).css(this.positionProperty, this.slideSize*2);
+ }
+ }
+ },
+ switchSlide: function() {
+ // prepare positions and calculate offset
+ var self = this;
+ var oldSlide = this.slides.eq(this.prevIndex);
+ var newSlide = this.slides.eq(this.currentIndex);
+ this.animating = true;
+
+ // resize mask to fit slide
+ if(this.options.maskAutoSize) {
+ this.mask.animate({
+ height: newSlide.outerHeight(true)
+ }, {
+ duration: this.options.animSpeed
+ });
+ }
+
+ // start animation
+ var animProps = {};
+ animProps[this.animProperty] = this.direction > 0 ? -this.slideSize*2 : 0;
+ this.preparePosition();
+ this.slider.animate(animProps,{duration:this.options.animSpeed, complete:function() {
+ self.setSlidesPosition(self.currentIndex);
+
+ // start autorotation
+ self.animating = false;
+ self.autoRotate();
+
+ // onchange callback
+ self.makeCallback('onChange', self);
+ }});
+
+ // refresh classes
+ this.refreshState();
+
+ // onchange callback
+ this.makeCallback('onBeforeChange', this);
+ },
+ refreshState: function(initial) {
+ // slide change function
+ this.slides.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+ this.pagerLinks.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+
+ // display current slide number
+ this.currentNumber.html(this.currentIndex + 1);
+ this.totalNumber.html(this.slides.length);
+
+ // add class if not enough slides
+ this.holder.toggleClass('not-enough-slides', this.slides.length === 1);
+ },
+ autoRotate: function() {
+ var self = this;
+ clearTimeout(this.timer);
+ if(this.options.autoRotation) {
+ this.timer = setTimeout(function() {
+ self.nextSlide();
+ }, this.options.switchTime);
+ }
+ },
+ makeCallback: function(name) {
+ if(typeof this.options[name] === 'function') {
+ var args = Array.prototype.slice.call(arguments);
+ args.shift();
+ this.options[name].apply(this, args);
+ }
+ },
+ destroy: function() {
+ // destroy handler
+ this.btnPrev.unbind('click', this.btnPrevHandler);
+ this.btnNext.unbind('click', this.btnNextHandler);
+ this.pagerLinks.unbind('click', this.pagerLinksHandler);
+ this.holder.unbind('mouseenter', this.hoverHandler);
+ this.holder.unbind('mouseleave', this.leaveHandler);
+ $(window).unbind('load resize orientationchange', this.resizeHandler);
+ clearTimeout(this.timer);
+
+ // destroy swipe handler
+ if(this.swipeHandler) {
+ this.swipeHandler.destroy();
+ }
+
+ // remove inline styles, classes and pagination
+ this.holder.removeClass(this.options.galleryReadyClass);
+ this.slider.add(this.slides).removeAttr('style');
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerHolder.empty();
+ }
+ }
+ };
+
+ // detect device type
+ var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
+
+ // jquery plugin
+ $.fn.scrollAbsoluteGallery = function(opt){
+ return this.each(function(){
+ $(this).data('ScrollAbsoluteGallery', new ScrollAbsoluteGallery($.extend(opt,{holder:this})));
+ });
+ };
+}(jQuery));
+
+/*
+ * Image Stretch module
+ */
+var ImageStretcher = {
+ getDimensions: function(data) {
+ // calculate element coords to fit in mask
+ var ratio = data.imageRatio || (data.imageWidth / data.imageHeight),
+ slideWidth = data.maskWidth,
+ slideHeight = slideWidth / ratio;
+
+ if(slideHeight < data.maskHeight) {
+ slideHeight = data.maskHeight;
+ slideWidth = slideHeight * ratio;
+ }
+ return {
+ width: slideWidth,
+ height: slideHeight,
+ top: (data.maskHeight - slideHeight) / 2,
+ left: (data.maskWidth - slideWidth) / 2
+ };
+ },
+ getRatio: function(image) {
+ if(image.prop('naturalWidth')) {
+ return image.prop('naturalWidth') / image.prop('naturalHeight');
+ } else {
+ var img = new Image();
+ img.src = image.prop('src');
+ return img.width / img.height;
+ }
+ },
+ imageLoaded: function(image, callback) {
+ var self = this;
+ var loadHandler = function() {
+ callback.call(self);
+ };
+ if(image.prop('complete')) {
+ loadHandler();
+ } else {
+ image.one('load', loadHandler);
+ }
+ },
+ resizeHandler: function() {
+ var self = this;
+ jQuery.each(this.imgList, function(index, item) {
+ if(item.image.prop('complete')) {
+ self.resizeImage(item.image, item.container);
+ }
+ });
+ },
+ resizeImage: function(image, container) {
+ this.imageLoaded(image, function() {
+ var styles = this.getDimensions({
+ imageRatio: this.getRatio(image),
+ maskWidth: container.width(),
+ maskHeight: container.height()
+ });
+ image.css({
+ width: styles.width,
+ height: styles.height,
+ marginTop: styles.top,
+ marginLeft: styles.left
+ });
+ });
+ },
+ add: function(options) {
+ var container = jQuery(options.container ? options.container : window),
+ image = typeof options.image === 'string' ? container.find(options.image) : jQuery(options.image);
+
+ // resize image
+ this.resizeImage(image, container);
+
+ // add resize handler once if needed
+ if(!this.win) {
+ this.resizeHandler = jQuery.proxy(this.resizeHandler, this);
+ this.imgList = [];
+ this.win = jQuery(window);
+ this.win.on('resize orientationchange', this.resizeHandler);
+ }
+
+ // store item in collection
+ this.imgList.push({
+ container: container,
+ image: image
+ });
+ }
+};
+
+/*! Hammer.JS - v2.0.4 - 2014-09-28
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2014 Jorik Tangelder;
+ * Licensed under the MIT license */
+if(Object.create){!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;af?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;sn;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),o.loop!==!0||t||($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:1},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;cO;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});
\ No newline at end of file
diff --git a/js/bootstrap.js b/js/bootstrap.js
new file mode 100644
index 00000000..4139b6fc
--- /dev/null
+++ b/js/bootstrap.js
@@ -0,0 +1,2306 @@
+/*!
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++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);
+
+/* ========================================================================
+ * Bootstrap: transition.js v3.3.2
+ * http://getbootstrap.com/javascript/#transitions
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+ // ============================================================
+
+ function transitionEnd() {
+ var el = document.createElement('bootstrap')
+
+ var transEndEventNames = {
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
+ }
+
+ for (var name in transEndEventNames) {
+ if (el.style[name] !== undefined) {
+ return { end: transEndEventNames[name] }
+ }
+ }
+
+ return false // explicit for ie8 ( ._.)
+ }
+
+ // http://blog.alexmaccaw.com/css-transitions
+ $.fn.emulateTransitionEnd = function (duration) {
+ var called = false
+ var $el = this
+ $(this).one('bsTransitionEnd', function () { called = true })
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
+ setTimeout(callback, duration)
+ return this
+ }
+
+ $(function () {
+ $.support.transition = transitionEnd()
+
+ if (!$.support.transition) return
+
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function (e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+ }
+ }
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * 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
+ $('
').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 = $('
')
+ .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: '',
+ 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: ''
+ })
+
+
+ // 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);
diff --git a/js/jquery-1.11.2.min.js b/js/jquery-1.11.2.min.js
new file mode 100644
index 00000000..e6a051d0
--- /dev/null
+++ b/js/jquery-1.11.2.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.2 | (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.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.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;++db;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.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=" ",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;
+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.lengthh;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=" a ",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=" ",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 ]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:k.htmlSerialize?[0,"",""]:[1,"X","
"]},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)?""!==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("")).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=" a ",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="",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();ca ",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("").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});
diff --git a/js/jquery.main.js b/js/jquery.main.js
new file mode 100644
index 00000000..71351e46
--- /dev/null
+++ b/js/jquery.main.js
@@ -0,0 +1,603 @@
+// page init
+jQuery(function() {
+ initCycleCarousel();
+ initBackgroundResize();
+ // menu
+ menu.init();
+ // scroller
+ scroller.init();
+});
+
+// cycle scroll gallery init
+function initCycleCarousel() {
+ jQuery('.cycle-gallery').scrollAbsoluteGallery({
+ mask: '.mask',
+ slider: '.slideset',
+ slides: '.slide',
+ btnPrev: 'a.btn-prev',
+ btnNext: 'a.btn-next',
+ pagerLinks: '.pagination li',
+ stretchSlideToMask: true,
+ pauseOnHover: true,
+ maskAutoSize: true,
+ autoRotation: false,
+ switchTime: 3000,
+ animSpeed: 500
+ });
+}
+
+// stretch background to fill blocks
+function initBackgroundResize() {
+ jQuery('.visual-area').each(function() {
+ ImageStretcher.add({
+ container: this,
+ image: 'img.bg-stretch'
+ });
+ });
+}
+
+var body = $('body'),
+ // menu for mobile view
+ menu = {
+ config : {
+ trigger : jQuery('.nav-opener'),
+ open : false
+ },
+ init : function() {
+ this.config.trigger.click(this.toggle.bind(this));
+ },
+ toggle : function() {
+ if(this.config.open) {
+ body.removeClass('nav-active');
+ }
+ else {
+ body.addClass('nav-active');
+ }
+ this.config.open = !this.config.open;
+ }
+ };
+
+// move some elements on scroll
+var scroller = {
+ config : {
+ docElem : window.document.documentElement,
+ // The viewportFactor defines how much of the appearing item has to be visible in order to trigger the animation
+ // if we'd use a value of 0, this would mean that it would add the animation class as soon as the item is in the viewport.
+ // If we were to use the value of 1, the animation would only be triggered when we see all of the item in the viewport (100% of it)
+ viewportFactor : 0,
+ elems : '.slide-holder'
+ },
+ getViewportH : function() {
+ var client = this.config.docElem['clientHeight'],
+ inner = window['innerHeight'];
+
+ if( client < inner )
+ return inner;
+ else
+ return client;
+ },
+ scrollY : function() {
+ return window.pageYOffset || this.config.docElem.scrollTop;
+ },
+ getOffset : function(el) {
+ var offsetTop = 0, offsetLeft = 0;
+ do {
+ if ( !isNaN( el.offsetTop ) ) {
+ offsetTop += el.offsetTop;
+ }
+ if ( !isNaN( el.offsetLeft ) ) {
+ offsetLeft += el.offsetLeft;
+ }
+ } while( el = el.offsetParent )
+
+ return {
+ top : offsetTop,
+ left : offsetLeft
+ }
+ },
+ inViewport : function(el, h) {
+ var elH = el.offsetHeight,
+ scrolled = this.scrollY(),
+ viewed = scrolled + this.getViewportH(),
+ elTop = this.getOffset(el).top,
+ elBottom = elTop + elH,
+ // if 0, the element is considered in the viewport as soon as it enters.
+ // if 1, the element is considered in the viewport only when it's fully inside
+ // value in percentage (1 >= h >= 0)
+ h = h || 0;
+
+ return (elTop + elH * h) <= viewed && (elBottom) >= scrolled;
+ },
+ init : function() {
+ this.sections = jQuery(this.config.elems);
+ this.didScroll = false;
+
+ var self = this,
+ scrollHandler = function() {
+ if( !self.didScroll ) {
+ self.didScroll = true;
+ setTimeout( function() { self.scrollPage(); }, 60 );
+ }
+ },
+ resizeHandler = function() {
+ function delayed() {
+ self.scrollPage();
+ self.resizeTimeout = null;
+ }
+ if ( self.resizeTimeout ) {
+ clearTimeout( self.resizeTimeout );
+ }
+ self.resizeTimeout = setTimeout( delayed, 200 );
+ };
+
+ window.addEventListener( 'scroll', scrollHandler, false );
+ window.addEventListener( 'resize', resizeHandler, false );
+ },
+ scrollPage : function() {
+ var self = this;
+
+ this.sections.each(function() {
+ if( self.inViewport( this, self.config.viewportFactor ) ) {
+ jQuery(this).addClass('scroll-effect-animate');
+ }
+ else {
+ // this add class init if it doesn't have it. This will ensure that the items initially in the viewport will also animate on scroll
+ jQuery(this).addClass('scroll-effect-init');
+ jQuery(this).removeClass('scroll-effect-animate');
+ }
+ });
+ this.didScroll = false;
+ }
+}
+
+/*
+ * jQuery Cycle Carousel plugin
+ */
+;(function($){
+ function ScrollAbsoluteGallery(options) {
+ this.options = $.extend({
+ activeClass: 'active',
+ mask: 'div.slides-mask',
+ slider: '>ul',
+ slides: '>li',
+ btnPrev: '.btn-prev',
+ btnNext: '.btn-next',
+ pagerLinks: 'ul.pager > li',
+ generatePagination: false,
+ pagerList: '
',
+ pagerListItem: ' ',
+ pagerListItemText: 'a',
+ galleryReadyClass: 'gallery-js-ready',
+ currentNumber: 'span.current-num',
+ totalNumber: 'span.total-num',
+ maskAutoSize: false,
+ autoRotation: false,
+ pauseOnHover: false,
+ stretchSlideToMask: false,
+ switchTime: 3000,
+ animSpeed: 500,
+ handleTouch: true,
+ swipeThreshold: 15,
+ vertical: false
+ }, options);
+ this.init();
+ }
+ ScrollAbsoluteGallery.prototype = {
+ init: function() {
+ if(this.options.holder) {
+ this.findElements();
+ this.attachEvents();
+ this.makeCallback('onInit', this);
+ }
+ },
+ findElements: function() {
+ // find structure elements
+ this.holder = $(this.options.holder).addClass(this.options.galleryReadyClass);
+ this.mask = this.holder.find(this.options.mask);
+ this.slider = this.mask.find(this.options.slider);
+ this.slides = this.slider.find(this.options.slides);
+ this.btnPrev = this.holder.find(this.options.btnPrev);
+ this.btnNext = this.holder.find(this.options.btnNext);
+
+ // slide count display
+ this.currentNumber = this.holder.find(this.options.currentNumber);
+ this.totalNumber = this.holder.find(this.options.totalNumber);
+
+ // create gallery pagination
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerLinks = this.buildPagination();
+ } else {
+ this.pagerLinks = this.holder.find(this.options.pagerLinks);
+ }
+
+ // define index variables
+ this.sizeProperty = this.options.vertical ? 'height' : 'width';
+ this.positionProperty = this.options.vertical ? 'top' : 'left';
+ this.animProperty = this.options.vertical ? 'marginTop' : 'marginLeft';
+
+ this.slideSize = this.slides[this.sizeProperty]();
+ this.currentIndex = 0;
+ this.prevIndex = 0;
+
+ // reposition elements
+ this.options.maskAutoSize = this.options.vertical ? false : this.options.maskAutoSize;
+ if(this.options.vertical) {
+ this.mask.css({
+ height: this.slides.innerHeight()
+ });
+ }
+ if(this.options.maskAutoSize){
+ this.mask.css({
+ height: this.slider.height()
+ });
+ }
+ this.slider.css({
+ position: 'relative',
+ height: this.options.vertical ? this.slideSize * this.slides.length : '100%'
+ });
+ this.slides.css({
+ position: 'absolute'
+ }).css(this.positionProperty, -9999).eq(this.currentIndex).css(this.positionProperty, 0);
+ this.refreshState();
+ },
+ buildPagination: function() {
+ var pagerLinks = $();
+ if(!this.pagerHolder) {
+ this.pagerHolder = this.holder.find(this.options.generatePagination);
+ }
+ if(this.pagerHolder.length) {
+ this.pagerHolder.empty();
+ this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
+ for(var i = 0; i < this.slides.length; i++) {
+ $(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i+1);
+ }
+ pagerLinks = this.pagerList.children();
+ }
+ return pagerLinks;
+ },
+ attachEvents: function() {
+ // attach handlers
+ var self = this;
+ if(this.btnPrev.length) {
+ this.btnPrevHandler = function(e) {
+ e.preventDefault();
+ self.prevSlide();
+ };
+ this.btnPrev.click(this.btnPrevHandler);
+ }
+ if(this.btnNext.length) {
+ this.btnNextHandler = function(e) {
+ e.preventDefault();
+ self.nextSlide();
+ };
+ this.btnNext.click(this.btnNextHandler);
+ }
+ if(this.pagerLinks.length) {
+ this.pagerLinksHandler = function(e) {
+ e.preventDefault();
+ self.numSlide(self.pagerLinks.index(e.currentTarget));
+ };
+ this.pagerLinks.click(this.pagerLinksHandler);
+ }
+
+ // handle autorotation pause on hover
+ if(this.options.pauseOnHover) {
+ this.hoverHandler = function() {
+ clearTimeout(self.timer);
+ };
+ this.leaveHandler = function() {
+ self.autoRotate();
+ };
+ this.holder.bind({mouseenter: this.hoverHandler, mouseleave: this.leaveHandler});
+ }
+
+ // handle holder and slides dimensions
+ this.resizeHandler = function() {
+ if(!self.animating) {
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+ self.resizeHolder();
+ self.setSlidesPosition(self.currentIndex);
+ }
+ };
+ $(window).bind('load resize orientationchange', this.resizeHandler);
+ if(self.options.stretchSlideToMask) {
+ self.resizeSlides();
+ }
+
+ // handle swipe on mobile devices
+ if(this.options.handleTouch && window.Hammer && this.mask.length && this.slides.length > 1 && isTouchDevice) {
+ this.swipeHandler = new Hammer.Manager(this.mask[0]);
+ this.swipeHandler.add(new Hammer.Pan({
+ direction: self.options.vertical ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,
+ threshold: self.options.swipeThreshold
+ }));
+
+ this.swipeHandler.on('panstart', function() {
+ if(self.animating) {
+ self.swipeHandler.stop();
+ } else {
+ clearTimeout(self.timer);
+ }
+ }).on('panmove', function(e) {
+ self.swipeOffset = -self.slideSize + e[self.options.vertical ? 'deltaY' : 'deltaX'];
+ self.slider.css(self.animProperty, self.swipeOffset);
+ clearTimeout(self.timer);
+ }).on('panend', function(e) {
+ if(e.distance > self.options.swipeThreshold) {
+ if(e.offsetDirection === Hammer.DIRECTION_RIGHT || e.offsetDirection === Hammer.DIRECTION_DOWN) {
+ self.nextSlide();
+ } else {
+ self.prevSlide();
+ }
+ } else {
+ var tmpObj = {};
+ tmpObj[self.animProperty] = -self.slideSize;
+ self.slider.animate(tmpObj, {duration: self.options.animSpeed});
+ self.autoRotate();
+ }
+ self.swipeOffset = 0;
+ });
+ }
+
+ // start autorotation
+ this.autoRotate();
+ this.resizeHolder();
+ this.setSlidesPosition(this.currentIndex);
+ },
+ resizeSlides: function() {
+ this.slideSize = this.mask[this.options.vertical ? 'height' : 'width']();
+ this.slides.css(this.sizeProperty, this.slideSize);
+ },
+ resizeHolder: function() {
+ if(this.options.maskAutoSize) {
+ this.mask.css({
+ height: this.slides.eq(this.currentIndex).outerHeight(true)
+ });
+ }
+ },
+ prevSlide: function() {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = -1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex > 0) this.currentIndex--;
+ else this.currentIndex = this.slides.length - 1;
+ this.switchSlide();
+ }
+ },
+ nextSlide: function(fromAutoRotation) {
+ if(!this.animating && this.slides.length > 1) {
+ this.direction = 1;
+ this.prevIndex = this.currentIndex;
+ if(this.currentIndex < this.slides.length - 1) this.currentIndex++;
+ else this.currentIndex = 0;
+ this.switchSlide();
+ }
+ },
+ numSlide: function(c) {
+ if(!this.animating && this.currentIndex !== c && this.slides.length > 1) {
+ this.direction = c > this.currentIndex ? 1 : -1;
+ this.prevIndex = this.currentIndex;
+ this.currentIndex = c;
+ this.switchSlide();
+ }
+ },
+ preparePosition: function() {
+ // prepare slides position before animation
+ this.setSlidesPosition(this.prevIndex, this.direction < 0 ? this.currentIndex : null, this.direction > 0 ? this.currentIndex : null, this.direction);
+ },
+ setSlidesPosition: function(index, slideLeft, slideRight, direction) {
+ // reposition holder and nearest slides
+ if(this.slides.length > 1) {
+ var prevIndex = (typeof slideLeft === 'number' ? slideLeft : index > 0 ? index - 1 : this.slides.length - 1);
+ var nextIndex = (typeof slideRight === 'number' ? slideRight : index < this.slides.length - 1 ? index + 1 : 0);
+
+ this.slider.css(this.animProperty, this.swipeOffset ? this.swipeOffset : -this.slideSize);
+ this.slides.css(this.positionProperty, -9999).eq(index).css(this.positionProperty, this.slideSize);
+ if(prevIndex === nextIndex && typeof direction === 'number') {
+ var calcOffset = direction > 0 ? this.slideSize*2 : 0;
+ this.slides.eq(nextIndex).css(this.positionProperty, calcOffset);
+ } else {
+ this.slides.eq(prevIndex).css(this.positionProperty, 0);
+ this.slides.eq(nextIndex).css(this.positionProperty, this.slideSize*2);
+ }
+ }
+ },
+ switchSlide: function() {
+ // prepare positions and calculate offset
+ var self = this;
+ var oldSlide = this.slides.eq(this.prevIndex);
+ var newSlide = this.slides.eq(this.currentIndex);
+ this.animating = true;
+
+ // resize mask to fit slide
+ if(this.options.maskAutoSize) {
+ this.mask.animate({
+ height: newSlide.outerHeight(true)
+ }, {
+ duration: this.options.animSpeed
+ });
+ }
+
+ // start animation
+ var animProps = {};
+ animProps[this.animProperty] = this.direction > 0 ? -this.slideSize*2 : 0;
+ this.preparePosition();
+ this.slider.animate(animProps,{duration:this.options.animSpeed, complete:function() {
+ self.setSlidesPosition(self.currentIndex);
+
+ // start autorotation
+ self.animating = false;
+ self.autoRotate();
+
+ // onchange callback
+ self.makeCallback('onChange', self);
+ }});
+
+ // refresh classes
+ this.refreshState();
+
+ // onchange callback
+ this.makeCallback('onBeforeChange', this);
+ },
+ refreshState: function(initial) {
+ // slide change function
+ this.slides.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+ this.pagerLinks.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
+
+ // display current slide number
+ this.currentNumber.html(this.currentIndex + 1);
+ this.totalNumber.html(this.slides.length);
+
+ // add class if not enough slides
+ this.holder.toggleClass('not-enough-slides', this.slides.length === 1);
+ },
+ autoRotate: function() {
+ var self = this;
+ clearTimeout(this.timer);
+ if(this.options.autoRotation) {
+ this.timer = setTimeout(function() {
+ self.nextSlide();
+ }, this.options.switchTime);
+ }
+ },
+ makeCallback: function(name) {
+ if(typeof this.options[name] === 'function') {
+ var args = Array.prototype.slice.call(arguments);
+ args.shift();
+ this.options[name].apply(this, args);
+ }
+ },
+ destroy: function() {
+ // destroy handler
+ this.btnPrev.unbind('click', this.btnPrevHandler);
+ this.btnNext.unbind('click', this.btnNextHandler);
+ this.pagerLinks.unbind('click', this.pagerLinksHandler);
+ this.holder.unbind('mouseenter', this.hoverHandler);
+ this.holder.unbind('mouseleave', this.leaveHandler);
+ $(window).unbind('load resize orientationchange', this.resizeHandler);
+ clearTimeout(this.timer);
+
+ // destroy swipe handler
+ if(this.swipeHandler) {
+ this.swipeHandler.destroy();
+ }
+
+ // remove inline styles, classes and pagination
+ this.holder.removeClass(this.options.galleryReadyClass);
+ this.slider.add(this.slides).removeAttr('style');
+ if(typeof this.options.generatePagination === 'string') {
+ this.pagerHolder.empty();
+ }
+ }
+ };
+
+ // detect device type
+ var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
+
+ // jquery plugin
+ $.fn.scrollAbsoluteGallery = function(opt){
+ return this.each(function(){
+ $(this).data('ScrollAbsoluteGallery', new ScrollAbsoluteGallery($.extend(opt,{holder:this})));
+ });
+ };
+}(jQuery));
+
+/*
+ * Image Stretch module
+ */
+var ImageStretcher = {
+ getDimensions: function(data) {
+ // calculate element coords to fit in mask
+ var ratio = data.imageRatio || (data.imageWidth / data.imageHeight),
+ slideWidth = data.maskWidth,
+ slideHeight = slideWidth / ratio;
+
+ if(slideHeight < data.maskHeight) {
+ slideHeight = data.maskHeight;
+ slideWidth = slideHeight * ratio;
+ }
+ return {
+ width: slideWidth,
+ height: slideHeight,
+ top: (data.maskHeight - slideHeight) / 2,
+ left: (data.maskWidth - slideWidth) / 2
+ };
+ },
+ getRatio: function(image) {
+ if(image.prop('naturalWidth')) {
+ return image.prop('naturalWidth') / image.prop('naturalHeight');
+ } else {
+ var img = new Image();
+ img.src = image.prop('src');
+ return img.width / img.height;
+ }
+ },
+ imageLoaded: function(image, callback) {
+ var self = this;
+ var loadHandler = function() {
+ callback.call(self);
+ };
+ if(image.prop('complete')) {
+ loadHandler();
+ } else {
+ image.one('load', loadHandler);
+ }
+ },
+ resizeHandler: function() {
+ var self = this;
+ jQuery.each(this.imgList, function(index, item) {
+ if(item.image.prop('complete')) {
+ self.resizeImage(item.image, item.container);
+ }
+ });
+ },
+ resizeImage: function(image, container) {
+ this.imageLoaded(image, function() {
+ var styles = this.getDimensions({
+ imageRatio: this.getRatio(image),
+ maskWidth: container.width(),
+ maskHeight: container.height()
+ });
+ image.css({
+ width: styles.width,
+ height: styles.height,
+ marginTop: styles.top,
+ marginLeft: styles.left
+ });
+ });
+ },
+ add: function(options) {
+ var container = jQuery(options.container ? options.container : window),
+ image = typeof options.image === 'string' ? container.find(options.image) : jQuery(options.image);
+
+ // resize image
+ this.resizeImage(image, container);
+
+ // add resize handler once if needed
+ if(!this.win) {
+ this.resizeHandler = jQuery.proxy(this.resizeHandler, this);
+ this.imgList = [];
+ this.win = jQuery(window);
+ this.win.on('resize orientationchange', this.resizeHandler);
+ }
+
+ // store item in collection
+ this.imgList.push({
+ container: container,
+ image: image
+ });
+ }
+};
+
+/*! Hammer.JS - v2.0.4 - 2014-09-28
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2014 Jorik Tangelder;
+ * Licensed under the MIT license */
+if(Object.create){!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;af?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;sn;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),o.loop!==!0||t||($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:1},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;cO;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});
diff --git a/scss/_bootstrap-custom.scss b/scss/_bootstrap-custom.scss
new file mode 100644
index 00000000..69e0ad6e
--- /dev/null
+++ b/scss/_bootstrap-custom.scss
@@ -0,0 +1,15 @@
+// custom variables and override bootstrap variables
+$body-bg: #fff;
+$font-family-sans-serif: 'Montserrat', sans-serif;
+$font-family-alt: 'Source Sans Pro', sans-serif;
+$font-size-base: 16px !default;
+$line-height-base: 1.5 !default; // 24/16
+$headings-color: #635C73 !default;
+$brand-primary: #0675A0 !default;
+$btn-primary-border: $brand-primary !default;
+$btn-default-color: #000 !default;
+$btn-default-bg: #f3f3f3 !default;
+$btn-default-border: #f3f3f3 !default;
+$btn-info-bg: #26a6d1 !default;
+$btn-info-border: #26a6d1 !default;
+$input-color-placeholder: #c8cbcf !default;
diff --git a/scss/_mq.scss b/scss/_mq.scss
new file mode 100644
index 00000000..6f5d41ea
--- /dev/null
+++ b/scss/_mq.scss
@@ -0,0 +1,260 @@
+@charset "UTF-8"; // Fixes an issue where Ruby locale is not set properly
+ // See https://github.com/sass-mq/sass-mq/pull/10
+
+/// Base font size on the `` element
+/// @type Number (unit)
+$mq-base-font-size: 16px !default;
+
+/// Responsive mode
+///
+/// Set to `false` to enable support for browsers that do not support @media queries,
+/// (IE <= 8, Firefox <= 3, Opera <= 9)
+///
+/// You could create a stylesheet served exclusively to older browsers,
+/// where @media queries are rasterized
+///
+/// @example
+/// // old-ie.scss
+/// $mq-responsive: false;
+/// @include 'main'; // @media queries in this file will be rasterized up to $mq-static-breakpoint
+/// // larger breakpoints will be ignored
+///
+/// @type Boolean
+/// @link https://github.com/sass-mq/sass-mq#responsive-mode-off Disabled responsive mode documentation
+$mq-responsive: true !default;
+
+/// Breakpoint list
+///
+/// Name your breakpoints in a way that creates a ubiquitous language
+/// across team members. It will improve communication between
+/// stakeholders, designers, developers, and testers.
+///
+/// @type Map
+/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint Full documentation and examples
+$mq-breakpoints: (
+ mobile: 320px,
+ tablet: 740px,
+ desktop: 980px,
+ wide: 1300px
+) !default;
+
+/// Static breakpoint (for fixed-width layouts)
+///
+/// Define the breakpoint from $mq-breakpoints that should
+/// be used as the target width for the fixed-width layout
+/// (i.e. when $mq-responsive is set to 'false') in a old-ie.scss
+///
+/// @example
+/// // tablet-only.scss
+/// //
+/// // Ignore all styles above tablet breakpoint,
+/// // and fix the styles (e.g. layout) at tablet width
+/// $mq-responsive: false;
+/// $mq-static-breakpoint: tablet;
+/// @include 'main'; // @media queries in this file will be rasterized up to tablet
+/// // larger breakpoints will be ignored
+///
+/// @type String
+/// @link https://github.com/sass-mq/sass-mq#adding-custom-breakpoints Full documentation and examples
+$mq-static-breakpoint: desktop !default;
+
+/// Show breakpoints in the top right corner
+///
+/// If you want to display the currently active breakpoint in the top
+/// right corner of your site during development, add the breakpoints
+/// to this list, ordered by width, e.g. (mobile, tablet, desktop).
+///
+/// @type map
+$mq-show-breakpoints: () !default;
+
+/// Customize the media type (e.g. `@media screen` or `@media print`)
+/// By default sass-mq uses an "all" media type (`@media all and …`)
+///
+/// @type String
+/// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples
+$mq-media-type: all !default;
+
+/// Convert pixels to ems
+///
+/// @param {Number} $px - value to convert
+/// @param {Number} $base-font-size ($mq-base-font-size) - `` font size
+///
+/// @example
+/// $font-size-in-ems: mq-px2em(16px);
+/// p { font-size: mq-px2em(16px); }
+///
+/// @requires $mq-base-font-size
+/// @returns {Number}
+@function mq-px2em($px/*, $base-font-size: $mq-base-font-size*/) {
+ // @if (unitless($px)) {
+ // @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels";
+ // @return mq-px2em($px + 0px); // That may fail.
+ // } @else if (unit($px) == em) {*/
+ // @return $px;
+ // }
+
+
+ //@return ($px / $base-font-size) * 1em;
+ @return $px;
+}
+
+/// Get a breakpoint's width
+///
+/// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints
+///
+/// @example
+/// $tablet-width: mq-get-breakpoint-width(tablet);
+/// @media (min-width: mq-get-breakpoint-width(desktop)) {}
+///
+/// @requires {Variable} $mq-breakpoints
+///
+/// @returns {Number} Value in pixels
+@function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) {
+ @if(map-has-key($breakpoints, $name)) {
+ @return map-get($breakpoints, $name);
+ } @else {
+ @warn "Breakpoint #{$name} wasn't found in $breakpoints.";
+ }
+}
+
+/// Media Query mixin
+///
+/// @param {String | Boolean} $from (false) - One of $mq-breakpoints
+/// @param {String | Boolean} $until (false) - One of $mq-breakpoints
+/// @param {String | Boolean} $and (false) - Additional media query parameters
+/// @param {String} $media-type ($mq-media-type) - Media type: screen, print…
+///
+/// @ignore Undocumented API, for advanced use only:
+/// @ignore @param {Map} $breakpoints ($mq-breakpoints)
+/// @ignore @param {String} $static-breakpoint ($mq-static-breakpoint)
+///
+/// @content styling rules, wrapped into a @media query when $responsive is true
+///
+/// @requires {Variable} $mq-media-type
+/// @requires {Variable} $mq-breakpoints
+/// @requires {Variable} $mq-static-breakpoint
+/// @requires {function} mq-px2em
+/// @requires {function} mq-get-breakpoint-width
+///
+/// @link https://github.com/sass-mq/sass-mq#responsive-mode-on-default Full documentation and examples
+///
+/// @example
+/// .element {
+/// @include mq($from: mobile) {
+/// color: red;
+/// }
+/// @include mq($until: tablet) {
+/// color: blue;
+/// }
+/// @include mq(mobile, tablet) {
+/// color: green;
+/// }
+/// @include mq($from: tablet, $and: '(orientation: landscape)') {
+/// color: teal;
+/// }
+/// @include mq(950px) {
+/// color: hotpink;
+/// }
+/// @include mq(tablet, $media-type: screen) {
+/// color: hotpink;
+/// }
+/// // Advanced use:
+/// $my-breakpoints: ( L: 900px, XL: 1200px );
+/// @include mq(L, $breakpoints: $my-breakpoints, $static-breakpoint: L) {
+/// color: hotpink;
+/// }
+/// }
+@mixin mq(
+ $from: false,
+ $until: false,
+ $and: false,
+ $media-type: $mq-media-type,
+ $breakpoints: $mq-breakpoints,
+ $responsive: $mq-responsive,
+ $static-breakpoint: $mq-static-breakpoint
+) {
+ $min-width: 0;
+ $max-width: 0;
+ $media-query: '';
+
+ // From: this breakpoint (inclusive)
+ @if $from {
+ @if type-of($from) == number {
+ $min-width: mq-px2em($from);
+ } @else {
+ $min-width: mq-px2em(mq-get-breakpoint-width($from, $breakpoints));
+ }
+ }
+
+ // Until: that breakpoint (exclusive)
+ @if $until {
+ @if type-of($until) == number {
+ $max-width: mq-px2em($until);
+ } @else {
+ $max-width: mq-px2em(mq-get-breakpoint-width($until, $breakpoints)) - 1px;
+ }
+ }
+
+ // Responsive support is disabled, rasterize the output outside @media blocks
+ // The browser will rely on the cascade itself.
+ @if ($responsive == false) {
+ $static-breakpoint-width: mq-get-breakpoint-width($static-breakpoint, $breakpoints);
+ $target-width: mq-px2em($static-breakpoint-width);
+ // Output only rules that start at or span our target width
+ @if ($and == false and ($min-width <= $target-width) and (($until == false) or ($max-width >= $target-width))) {
+ @content;
+ }
+ }
+
+ // Responsive support is enabled, output rules inside @media queries
+ @else {
+ @if $min-width != 0 { $media-query: '#{$media-query} and (min-width: #{$min-width})'; }
+ @if $max-width != 0 { $media-query: '#{$media-query} and (max-width: #{$max-width})'; }
+ @if $and { $media-query: '#{$media-query} and #{$and}'; }
+
+ $media-query: unquote(#{$media-query});
+
+ @media #{$media-type + $media-query} {
+ @content;
+ }
+ }
+}
+
+/// Add a breakpoint
+///
+/// @param {String} $name - Name of the breakpoint
+/// @param {Number} $width - Width of the breakpoint
+///
+/// @requires {Variable} $mq-breakpoints
+///
+/// @example
+/// @include mq-add-breakpoint(tvscreen, 1920px);
+/// @include mq(tvscreen) {}
+@mixin mq-add-breakpoint($name, $width) {
+ $new-breakpoint: ($name: $width);
+ $mq-breakpoints: map-merge($mq-breakpoints, $new-breakpoint) !global;
+}
+
+// Show the active breakpoint in the top right corner of the viewport
+@if (length($mq-show-breakpoints) > 0) {
+ body:before {
+ background-color: #FCF8E3;
+ border-bottom: 1px solid #FBEED5;
+ border-left: 1px solid #FBEED5;
+ color: #C09853;
+ font: small-caption;
+ padding: 3px 6px;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 100;
+
+ // Loop through the breakpoints that should be shown
+ @each $show-breakpoint in $mq-show-breakpoints {
+ $width: mq-get-breakpoint-width($show-breakpoint);
+ @include mq($show-breakpoint) {
+ content: "#{$show-breakpoint} ≥ #{$width} (#{mq-px2em($width)})";
+ }
+ }
+ }
+}
diff --git a/scss/all.scss b/scss/all.scss
new file mode 100644
index 00000000..7c7451a8
--- /dev/null
+++ b/scss/all.scss
@@ -0,0 +1,1441 @@
+$mq-breakpoints: (// Base device classes
+mobile:320px, tablet:640px, desktop:1024px, widescreen:1200px, tvscreen:1920px, // Tweakpoints
+mobileLandscape:480px);
+
+// Show active breakpoint in top right corner of viewport
+// $mq-show-breakpoints: (mobile, mobileLandscape, tablet, desktop, widescreen, tvscreen);
+@import "bootstrap-custom";
+@import "bootstrap/variables";
+@import "bootstrap/mixins";
+@import "base/markup-mixins";
+@import "mq";
+
+* {
+ font-size: 100.01%;
+}
+html {
+ font-size: 62.5%;
+ height: 100%;
+}
+body {
+ margin: 0;
+ height: 100%;
+ font: 1.3rem/1.615384 $font-family-sans-serif;
+}
+p {
+ font-family: "Source Sans Pro", sans-serif;
+}
+.btn, a {
+ -webkit-transition: color linear .4s, background-color linear .4s, border-color linear .4s;
+ transition: color linear .4s, background-color linear .4s, border-color linear .4s;
+
+ &:hover {
+ text-decoration: none;
+ outline: none;
+ }
+}
+.btn-link {
+ display: inline-block;
+ vertical-align: top;
+ background: #f4f4f4;
+ border-radius: 3px;
+ font-weight: bold;
+ font-size: 1.4rem;
+ line-height: 1.3571428;
+ padding: 7px 24px;
+
+ &:hover {
+ background: #e0e0e0;
+ }
+}
+#wrapper {
+ width: 100%;
+ height: 100%;
+ display: table;
+ overflow: hidden;
+ table-layout: fixed;
+}
+#footer {
+ width: 100%;
+ overflow: hidden;
+ display: table-footer-group;
+ height: 1%;
+}
+.btn-blue {
+ background: #3b5998;
+ color: #fff;
+
+ &:hover {
+ color: #fff;
+ background: #21396b;
+ }
+}
+.logo {
+ float: left;
+ margin: 0 0 0 15px;
+ width: 151px;
+ height: 41px;
+}
+.social-placeholder {
+ padding: 9px 0 0;
+ height: 35px;
+
+ img {
+ vertical-align: top;
+ max-width: 100%;
+ height: auto;
+ }
+}
+#header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 99;
+ padding: 31px 0 32px;
+ background: #fff;
+ box-shadow: 0 1px 1px rgba(196, 194, 202, 0.23);
+ -webkit-backface-visibility: hidden; /* Prevent Chrome bug because of on-scroll effect in other section */
+
+ .btn {
+ float: right;
+ margin: 2px 0 0 59px;
+ height: 38px;
+ min-width: 145px;
+ padding: 7px;
+ font-weight: bold;
+ font-size: 1.6rem;
+ line-height: 22px;
+ letter-spacing: 0;
+ }
+}
+#nav {
+ overflow: hidden;
+ text-align: right;
+ font-size: 0;
+ letter-spacing: -4px;
+ white-space: nowrap;
+
+ .nav-drop {
+ overflow: hidden;
+ }
+ ul {
+ padding: 9px 0 5px;
+ margin: 0;
+ }
+ li {
+ display: inline-block;
+ vertical-align: top;
+ font-size: 1.6rem;
+ line-height: 24px;
+ font-weight: bold;
+ letter-spacing: 0;
+ white-space: normal;
+ margin: 0 0 0 34px;
+
+ a {
+ display: block;
+ color: #635C73;
+
+ &:hover {
+ text-decoration: none;
+ color: $brand-primary;
+ }
+ }
+ }
+}
+.nav-opener {
+ display: none;
+ float: right;
+ width: 31px;
+ height: 31px;
+ position: relative;
+ text-indent: -9999px;
+ overflow: hidden;
+}
+.nav-opener:before, .nav-opener:after, .nav-opener span {
+ background: #333;
+ border-radius: 4px;
+ position: absolute;
+ top: 17px;
+ left: 3px;
+ right: 3px;
+ height: 3px;
+ margin-top: -2px; /* height/2 */
+ -webkit-transition: all 0.2s linear;
+ transition: all 0.2s linear;
+}
+.nav-opener:before {
+ content: '';
+ top: 8px;
+ left: 30%;
+}
+.nav-opener:after {
+ content: '';
+ top: 26px;
+}
+.nav-active .nav-opener span {
+ opacity: 0;
+}
+.nav-opener:hover {
+ opacity: .9;
+}
+.nav-active .nav-opener:after, .nav-active .nav-opener:before {
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ top: 16px;
+ left: 5%;
+ right: 5%;
+}
+.nav-active .nav-opener:after {
+ -moz-transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+.visual {
+ min-height: 904px;
+ position: relative;
+ overflow: hidden;
+ text-align: center;
+ color: #8d81ac;
+ font-size: 0;
+ letter-spacing: -4px;
+ padding: 104px 0 0;
+ background: #000;
+
+ .bg-stretch {
+ position: absolute;
+ bottom: 0;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%);
+ }
+ > .container {
+ display: inline-block;
+ vertical-align: top;
+ position: relative;
+ z-index: 1;
+ font-size: 2.4rem;
+ line-height: 1.5;
+ letter-spacing: 0;
+ }
+ h1 {
+ margin: 0 0 10px;
+ font-size: 8.2rem;
+ line-height: 1.12;
+ font-weight: bold;
+ color: #e3dfed;
+ }
+ p {
+ margin: 0 0 8px;
+ &.tagline {
+ line-height: 1.1;
+ font-size: 2.6rem;
+ }
+ }
+ .info {
+ display: block;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ color: #494654;
+ text-transform: uppercase;
+ }
+ .text-block {
+ padding: 90px 0;
+ }
+}
+#cta {
+ position: relative;
+ z-index: 1;
+ margin: -80px 0 55px;
+ text-align: center;
+ color: #848e97;
+ font-size: 1.4rem;
+ line-height: 1.28571428;
+
+ .btn {
+ margin: 0 0 16px;
+ height: 62px;
+ font-size: 2.1rem;
+ line-height: 26px;
+ font-weight: bold;
+ padding: 17px;
+ min-width: 390px;
+ }
+ p {
+ margin: 0 0 18px;
+ }
+}
+.cta-list {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ text-align: center;
+ font-size: 0;
+ letter-spacing: -4px;
+ white-space: nowrap;
+ color: #848e97;
+
+ li {
+ display: inline-block;
+ vertical-align: top;
+ margin: 0 20px;
+ font-size: 1.4rem;
+ line-height: 1.285;
+ letter-spacing: 0;
+ white-space: normal;
+ }
+ .btn {
+ position: relative;
+ margin: 0 0 15px;
+ height: 50px;
+ line-height: 30px;
+ padding: 10px 50px;
+ min-width: 240px;
+
+ i {
+ position: absolute;
+ left: 24px;
+ top: 50%;
+ font-size: 2.4rem;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+
+ &.fa-twitter {
+ font-size: 2rem;
+ }
+ &.fa-facebook {
+ font-size: 1.6rem;
+ }
+ }
+ }
+}
+.text-box {
+ text-align: center;
+ font-size: 2.1rem;
+ line-height: 1.524;
+ color: #716E79;
+ padding-bottom: 23px;
+
+ h2 {
+ margin: 0 0 20px;
+ font-size: 5.4rem;
+ line-height: 1.148;
+ text-transform: uppercase;
+ font-weight: bold;
+ }
+ p {
+ margin: 0 0 35px;
+ }
+}
+.rounded {
+ border-radius: 40px;
+}
+.main {
+ padding: 47px 0;
+
+ .content {
+ padding: 25px 15px 23px;
+ font-size: 1.3rem;
+ line-height: 1.615;
+ color: #848e97;
+ }
+ h3 {
+ margin: 0 0 46px;
+ font-size: 2.8rem;
+ line-height: 1.285;
+ font-weight: 300;
+ color: #D3D1DA;
+ }
+ h4 {
+ margin: 0 0 12px;
+ font-size: $font-size-base;
+ line-height: 1.625;
+ font-weight: bold;
+
+ .style-01 & {
+ margin: 0 0 7px;
+ }
+ }
+ p {
+ margin: 0 0 23px;
+ }
+ .date {
+ display: block;
+ margin: -5px 0 0;
+ padding: 0 0 22px;
+ }
+ .btn-holder {
+ padding: 32px 0 0;
+ }
+}
+.area {
+ padding: 77px 0 47px;
+ background: #f4f4f4;
+
+ h2 {
+ margin: 0 0 28px;
+ font-size: 4rem;
+ line-height: 1.107;
+ font-weight: bold;
+ }
+}
+.slide-holder {
+ padding: 0 0 0 65px;
+
+ .img-slide {
+ position: relative;
+ margin: 0 0 -140px;
+
+ img {
+ position: relative;
+ top: 0;
+ left: -20px;
+ }
+ }
+}
+/* See Blueprint http://tympanus.net/codrops/2013/07/18/on-scroll-effect-layout/ */
+.scroll-effect-init .img-slide {
+ -webkit-transition: -webkit-transform 1s;
+ transition: transform 1s;
+}
+.scroll-effect-init .img-slide {
+ -webkit-transform: translateX(50px);
+ -moz-transform: translateX(50px);
+ transform: translateX(50px);
+}
+.slide-holder.scroll-effect-animate .img-slide {
+ -webkit-transform: translateX(0px);
+ -moz-transform: translateX(0px);
+ transform: translateX(0px);
+ opacity: 1;
+}
+.visual-list {
+ margin: 0 -25px -40px -15px;
+ padding: 28px 0;
+ list-style: none;
+ color: #848e97;
+
+ .img-holder {
+ float: left;
+ width: 90px;
+ text-align: center;
+ margin: 7px 45px 0 0;
+
+ img {
+ vertical-align: top;
+ }
+ }
+ .text-holder {
+ overflow: hidden;
+ }
+ li {
+ padding: 0 0 29px;
+ }
+ h3 {
+ margin: 0 0 10px;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ font-weight: bold;
+ color: #635C73;
+ }
+ p {
+ margin: 0 0 21px;
+ }
+}
+.cycle-gallery {
+ position: relative;
+ text-align: center;
+ padding: 40px 200px 33px;
+ margin: 0 0 60px;
+ font-size: 2rem;
+ line-height: 1.6;
+
+ p a {
+ font-weight: 400;
+ }
+ .img-box {
+ display: block;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ padding: 0 0 40px;
+
+ .img-holder {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 22px 0 0;
+ overflow: hidden;
+ img {
+ border-radius: 50%;
+ }
+ }
+ .text-holder {
+ display: inline-block;
+ vertical-align: middle;
+ text-align: left;
+ }
+ h3 {
+ margin: 0;
+ font-size: 2.4rem;
+ line-height: 1.33333;
+ color: $headings-color;
+ }
+ a {
+ font-weight: bold;
+ }
+ }
+ &:after {
+ content: "";
+ position: absolute;
+ bottom: 0;
+ left: 180px;
+ right: 180px;
+ height: 1px;
+ background: #f4f4f4;
+ }
+ [class^='btn-'] {
+ position: absolute;
+ top: 50%;
+ margin: 23px 0 0;
+ z-index: 9;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateX(-50%);
+ color: #a3a3a3;
+
+ &:hover {
+ color: #000;
+ }
+ }
+ .btn-prev {
+ left: 90px;
+ }
+ .btn-next {
+ right: 90px;
+ }
+ .date {
+ display: block;
+ font-style: normal;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ font-weight: normal;
+ color: #848e97;
+ }
+}
+.cycle-gallery .mask {
+ position: relative;
+ overflow: hidden;
+}
+.cycle-gallery .mask .slideset {
+ width: 99999px;
+ float: left;
+}
+.cycle-gallery .mask .slide {
+ float: left;
+}
+.cycle-gallery .mask .slide.active {
+ z-index: 1;
+}
+.visual-container {
+ background: #4E384E;
+ text-align: center;
+
+ .visual-area {
+ position: relative;
+ overflow: hidden;
+ padding: 90px 0 70px;
+ font-size: 1.4rem;
+ line-height: 1.5;
+ color: #fff;
+
+ > .container {
+ position: relative;
+ z-index: 1;
+
+ > p {
+ margin: 0 120px 5px;
+ }
+ }
+ .bg-stretch {
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+ }
+ .visual-area + .visual-area {
+ padding: 70px 0;
+
+ &:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 180px;
+ right: 180px;
+ height: 1px;
+ background: rgba(102, 74, 102, 0.6);
+ }
+ }
+ h2 {
+ margin: 0 0 70px;
+ font-size: 4.8rem;
+ line-height: 1.166666;
+ font-weight: bold;
+ color: #e3dfed;
+ }
+ p.silent {
+ color: #746074;
+ }
+}
+.testimonials {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ color: #fff;
+ margin-bottom: -46px;
+ overflow: hidden;
+ font-size: 0;
+ letter-spacing: -4px;
+
+ li {
+ display: inline-block;
+ vertical-align: top;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ width: 33.3333%;
+ letter-spacing: 0;
+ }
+ .img-holder {
+ img {
+ display: inline-block;
+ vertical-align: middle;
+ }
+ &:before {
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+ width: 1px;
+ height: 100px;
+ margin: 0 0 0 -1px;
+ }
+ }
+ p {
+ margin: 0 30px 70px;
+ }
+}
+.pricing-tables {
+ padding: 0 7px 25px;
+ font-size: 0;
+ letter-spacing: -4px;
+ white-space: nowrap;
+
+ h3 {
+ font-size: 2.1rem;
+ line-height: 1.5;
+ text-transform: uppercase;
+ color: #fff;
+ }
+}
+.plan {
+ display: inline-block;
+ vertical-align: top;
+ width: 24%;
+ background: rgba(255,255,255,0.1);
+ border-radius: 0;
+ min-height: 100px;
+ margin: 50px 3px;
+ padding:0 0 35px;
+ font-size: 1.6rem;
+ letter-spacing: 0;
+ white-space: normal;
+ text-align: center;
+ color: #fff;
+ .head {
+ background: rgba(255,255,255,0.05);
+ padding: 8px 0 13px;
+ margin-bottom: 30px;
+ }
+}
+.plan.recommended .head {
+ padding: 12px 0 20px;
+ background: rgba(0,0,0,0.1);
+}
+.plan .price {
+ display: block;
+ font-weight: bold;
+ text-transform: uppercase;
+}
+.price .price-main {
+ display: block;
+ padding: 0 0 17px;
+ font-size: 6.4rem;
+ vertical-align: top;
+ line-height: 1;
+ white-space: nowrap;
+ .recommended &{font-size: 8.2rem;}
+}
+.price .price-main .symbol {
+ display: inline-block;
+ color: rgba(255, 255, 255, 0.18);
+ vertical-align: top;
+ margin: 0 7px 0 0;
+ position: relative;
+ font-weight: normal;
+}
+.price .price-additional {
+ color: rgba(255, 255, 255, 0.25);
+ display: block;
+ padding: 0 0 33px;
+ font-weight: normal;
+ font-size: 1.4rem;
+ .recommended &{padding: 0 0 43px;}
+}
+.plan .btn {
+ height: 42px;
+ font-size: 1.5rem;
+ border: 0;
+ line-height: 26px;
+ padding: 8px 40px;
+ text-transform: uppercase;
+ color: #fff;
+ font-weight: bold;
+ &.btn-default{
+ background:rgba(255, 255, 255, .15);
+ &:hover{
+ background:rgba(255, 255, 255, .4);
+ }
+ }
+}
+.recommended .btn{
+ padding: 14px 50px;
+ height: 52px;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ margin-bottom: 7px;
+}
+.plan ul {
+ display: block;
+ position: relative;
+ margin: 0;
+ font-size: 1.6rem;
+ line-height: 1.75;
+ padding: 29px 0 22px;
+ min-height: 117px;
+ list-style: none;
+}
+.plan ul:before{
+ content: '';
+ position: absolute;
+ top:0;
+ left: 50%;
+ width:60px;
+ margin: 0 0 0 -30px;
+ height: 5px;
+ background:#8d81ac;
+}
+.plan.recommended {
+ margin-top: 0;
+ width: 28%;
+ position: relative;
+ z-index: 99;
+ background: rgba(0,0,0,0.2);
+ border-color:$brand-primary;
+ ul {
+ min-height: 176px;
+ line-height: 32px;
+ padding: 37px 0 22px;
+ }
+}
+.subscribe {
+ margin: -30px 17px 0 0;
+ text-align: right;
+ white-space: nowrap;
+
+ h3 {
+ margin: 0 15px;
+ float: left;
+ font-size: 3rem;
+ line-height: 1.4;
+ font-weight: bold;
+ color: #635C73;
+ }
+ .form-group {
+ overflow: hidden;
+ }
+ .form-control {
+ padding: 10px 28px;
+ font-size: 1.4rem;
+ height: 42px;
+ min-width: 335px;
+ line-height: 20px;
+ border-color: #fff;
+ font-weight: bold;
+ box-shadow: 0 0 0 #fff;
+ }
+ .btn {
+ float: right;
+ height: 42px;
+ font-size: 1.3rem;
+ line-height: 20px;
+ padding: 10px 35px;
+ font-weight: bold;
+ text-transform: uppercase;
+ margin: 0 0 0 20px;
+ }
+}
+.footer-holder {
+ position: relative;
+ padding: 62px 15px 92px;
+ font-size: 1.4rem;
+ line-height: 1.6428571429;
+ color: #848e97;
+
+ &:before {
+ content: '';
+ position: absolute;
+ height: 1px;
+ top: 0;
+ right: 15px;
+ left: 15px;
+ background: #f4f4f4;
+ }
+ .logo {
+ margin: 0 0 23px;
+ padding: 4px 0 0;
+ float: none;
+ display: block;
+
+ & + p {
+ line-height: 21px;
+ }
+ }
+ h4 {
+ margin: 0 0 14px;
+ font-size: 1.6rem;
+ line-height: 1.5;
+ font-weight: bold;
+ }
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ font-weight: bold;
+ font-size: 1.5rem;
+ line-height: 1.55;
+
+ a {
+ color: #8d81ac;
+
+ &:hover {
+ color: #716298;
+ }
+ }
+ }
+ .text-holder {
+ padding: 0 0 0 10px;
+ }
+ .text-frame {
+ padding: 0 0 0 25px;
+ }
+ .phone {
+ display: block;
+ margin: 0 0 6px;
+ font-size: 3rem;
+ line-height: 1.2;
+ a {
+ color: #31384d;
+ }
+ }
+ .available {
+ display: block;
+ padding: 0 0 29px;
+ font-size: 1.2rem;
+ line-height: 1.3333333;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: #848e97;
+ }
+ address {
+ display: block;
+ margin: -3px 0 0;
+ font-style: normal;
+ line-height: 23px;
+ }
+}
+@media only screen and (max-width:$screen-md) {
+ .nav-opener {
+ display: inline-block;
+ vertical-align: top;
+ }
+ .opener-holder {
+ float: right;
+ display: inline-block;
+ vertical-align: top;
+ position: relative;
+ padding: 0 0 0 25px;
+ margin: 7px 25px 0;
+
+ &:before {
+ position: absolute;
+ content: "";
+ width: 1px;
+ left: 0;
+ top: 0;
+ bottom: -6px;
+ background: #f4f4f4;
+ }
+ }
+ #header {
+ position: relative;
+ padding: 0;
+
+ > .container {
+ padding: 29px 0 0;
+ }
+ .logo {
+ margin: 3px 0 32px 25px;
+ }
+ .btn {
+ float: none;
+ height: 48px;
+ font-size: 1.7rem;
+ line-height: 22px;
+ margin: 0;
+ padding: 12px 40px;
+ display: inline-block;
+ vertical-align: top;
+ }
+ }
+ #nav {
+ overflow: visible;
+ font-size: 1.8rem;
+ line-height: 1.3333333;
+ letter-spacing: 0;
+ font-weight: normal;
+
+ .nav-drop {
+ display: block;
+ clear: both;
+ width: 100%;
+ max-width: 400px;
+ position: absolute;
+ right: 0;
+ top: 100%;
+ pointer-events: none;
+ opacity: 0;
+ -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
+ transition: transform 0.3s, opacity 0.3s;
+ -webkit-transform: translate3d(0, 30px, 0);
+ transform: translate3d(0, 30px, 0);
+ > ul {
+ display: block;
+ padding: 0;
+ text-align: left;
+
+ li {
+ position: relative;
+ margin: 0;
+ padding: 0 35px;
+ display: block;
+ font-size: 1.8rem;
+ line-height: 1.3333333;
+ font-weight: normal;
+
+ &.active:before {
+ content: '';
+ position: absolute;
+ top: 20px;
+ bottom: 20px;
+ width: 4px;
+ left: 0;
+ background: $brand-primary;
+ }
+ a {
+ display: block;
+ margin: 0 -9999px;
+ padding: 20px 9979px;
+ border-bottom: 1px solid #3E3D3F;
+ color: #fff;
+ background: rgba(51, 51, 51, 0.98);
+
+ &:active, &:focus, &:hover {
+ text-decoration: none;
+ color: $brand-primary;
+ }
+ }
+ &.active {
+ position: relative;
+
+ a {
+ color: #858585;
+ }
+ }
+ }
+ }
+ .drop-holder {
+ margin: 0 -9999px;
+ padding: 20px 10014px;
+ background: #333;
+ text-align: left;
+ color: #9a9a9a;
+
+ span {
+ display: block;
+ margin: 0 0 20px;
+ }
+ ul {
+ padding: 0;
+
+ li {
+ padding: 0;
+ margin: 0;
+ }
+ li + li {
+ margin: 0 0 0 20px;
+ }
+ a {
+ font-size: 3rem;
+ color: #fff;
+
+ &:hover {
+ color: $brand-primary;
+ }
+ }
+ }
+ }
+ }
+ }
+ .nav-active #nav .nav-drop {
+ pointer-events: auto;
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ #cta {
+ margin: -80px 0 41px;
+ }
+ .social-placeholder {
+ padding: 0;
+ }
+ .visual {
+ padding: 0;
+ min-height: 760px;
+
+ .text-block {
+ padding: 70px 0;
+ }
+ &:before {
+ display: none;
+ }
+ .bg-stretch {
+ bottom: -60px;
+ }
+ }
+ .area {
+ padding: 40px 0 47px;
+ }
+ .text-box {
+ font-size: 1.6rem;
+ line-height: 1.625;
+ padding-bottom: 13px;
+ }
+ .main .text-box p {
+ margin: 0 0 33px;
+ }
+ .text-box h2 {
+ font-size: 4.8rem;
+ line-height: 1.333333;
+ }
+ .visual-list {
+ margin: 0;
+ padding: 28px 0 0 15px;
+
+ .img-holder {
+ width: 120px;
+ margin: 7px 20px 0 0;
+ }
+ li {
+ padding: 0 0 19px;
+ }
+ }
+ .slide-holder {
+ padding: 0;
+ margin: 0 0 -130px;
+ text-align: center;
+ }
+ .slide-holder .img-slide {
+ img {
+ position: relative;
+ left: -3px;
+ }
+ }
+ .area h2 {
+ text-align: center;
+ font-size: 4.8rem;
+ line-height: 1.125;
+ }
+ .cycle-gallery {
+ margin: 0 0 30px;
+ padding: 85px 35px 0;
+ font-size: 1.7rem;
+ line-height: 1.412;
+
+ .img-box {
+ padding: 0 0 35px;
+ }
+ [class^='btn-'] {
+ margin: 67px 0 0;
+ }
+ .btn-prev {
+ left: 0;
+ }
+ .btn-next {
+ right: 0;
+ }
+ &:after {
+ display: none;
+ }
+ .date {
+ margin: -10px 0 0;
+ }
+ }
+ .testimonials li {
+ width: 50%;
+
+ p {
+ margin: 0 10px 18px;
+ }
+ }
+ .cta-list {
+ margin: 0 0 -16px;
+
+ li {
+ display: block;
+ margin: 0;
+ }
+ .btn {
+ margin: 0 0 15px;
+ min-width: 280px;
+ }
+ p {
+ margin: 0 0 26px;
+ }
+ }
+ .visual-container {
+ .visual-area {
+ padding: 68px 0 84px;
+ }
+ h2 {
+ margin: 0 0 53px;
+ font-size: 4.8rem;
+ line-height: 1.25;
+ }
+ .visual-area + .visual-area {
+ padding: 54px 0 55px;
+
+ &:after {
+ left: 65px;
+ right: 65px;
+ }
+ }
+ }
+ .testimonials p {
+ margin: 0 30px 36px;
+ }
+ .pricing-tables {
+ padding: 20px 0 60px;
+ }
+ .plan {
+ display: block;
+ width: auto;
+ margin: 0 auto -5px;
+ max-width: 310px;
+
+ &.recommended {
+ max-width: 370px;
+ width: auto;
+ }
+ }
+ .visual-container .visual-area > .container > p {
+ margin: 0 40px;
+ }
+ .subscribe {
+ text-align: center;
+ margin: 2px 0 0;
+
+ .form-inline {
+ min-width: 430px;
+ display: inline-block;
+ vertical-align: top;
+ }
+ .form-group {
+ margin: 0;
+ }
+ .form-control {
+ min-width: 260px;
+ }
+ }
+ .subscribe h3 {
+ font-size: 3rem;
+ line-height: 1.2;
+ float: none;
+ margin: 0 0 44px;
+ }
+ .main h3 {
+ margin: 0 0 26px;
+ }
+ .main .content {
+ padding: 5px 15px 0;
+ }
+ .main .col-md-4 h3:first-child {
+ margin: 40px 0 26px;
+ }
+ .main .col-md-4:first-child h3 {
+ margin: 0 0 26px;
+ }
+ .main .btn-holder {
+ padding: 12px 0;
+ }
+ .footer-holder {
+ padding: 47px 19px 70px;
+
+ .text-holder {
+ padding: 0;
+ }
+ .text-frame {
+ padding: 0;
+ }
+ &:before {
+ left: 0;
+ right: 0;
+ }
+ }
+ .footer-holder .logo + p {
+ margin: 0 0 29px;
+ }
+ .footer-holder ul {
+ margin: 0 0 26px;
+ }
+ .footer-holder address {
+ margin: -3px 0 29px;
+ }
+}
+@media only screen and (max-width:$screen-sm - 1) {
+ .testimonials {
+ margin: 0 0 -20px;
+
+ p {
+ margin: 0 0 20px;
+ }
+ li {
+ width: 100%;
+
+ p {
+ margin: 0 30px 36px;
+ }
+ }
+ }
+}
+@media only screen and (max-width:$screen-xs - 1) {
+ body {
+ min-width: 320px;
+ }
+ #header > .container {
+ padding: 10px 0 0;
+ }
+ .subscribe .form-inline {
+ min-width: 280px;
+ }
+ #header {
+ .btn {
+ height: 30px;
+ margin: 8px 0 0;
+ font-size: 1.2rem;
+ line-height: 20px;
+ padding: 3px 20px;
+ min-width: 0;
+ }
+ .logo {
+ margin: 4px 0 10px 10px;
+ width: 130px;
+ }
+ }
+ .opener-holder {
+ margin: 4px 10px;
+ padding: 0 0 0 10px;
+ }
+ .visual {
+ min-height: 340px;
+
+ > .container {
+ font-size: 1.6rem;
+ line-height: 1.5;
+ }
+ .bg-stretch {
+ max-width: 100%;
+ bottom: 20px;
+ }
+ .info {
+ background: rgba(255,255,255,0.3);
+ color: #BEBCC3;
+ }
+ }
+ .visual h1 {
+ font-size: 5.4rem;
+ line-height: 1.148;
+ }
+ .visual .text-block {
+ padding: 30px 0;
+ }
+ #nav .nav-drop > ul li.active:before {
+ top: 15px;
+ bottom: 15px;
+ }
+ .area, .main {
+ padding: 40px 0;
+ }
+ #cta {
+ margin: -61px 0 0;
+
+ .btn {
+ margin: 0 0 12px;
+ height: 42px;
+ font-size: 1.4rem;
+ line-height: 20px;
+ padding: 10px 30px;
+ min-width: 0;
+ }
+ }
+ .text-box {
+ font-size: 1.4rem;
+ line-height: 1.285;
+
+ h2 {
+ font-size: 2.8rem;
+ line-height: 1.286;
+ }
+ }
+ .visual-container h2, .area h2 {
+ margin: 0 0 20px;
+ font-size: 3.2rem;
+ line-height: 1.125;
+ }
+ .visual-list {
+ padding: 20px 0 0;
+
+ .img-holder {
+ margin: 0 10px 0 0;
+ }
+ .text-holder {
+ overflow: visible;
+ }
+ }
+ .slide-holder {
+ margin: 0 0 -80px;
+
+ .img-slide {
+ img {
+ height: 416px;
+ width: auto;
+ }
+ }
+ }
+ .cycle-gallery {
+ text-align: center;
+
+ .img-box {
+ padding: 0 0 10px;
+
+ .img-holder {
+ margin: 0 0 10px;
+ display: block;
+ }
+ }
+ }
+ .cycle-gallery .img-box .text-holder {
+ display: block;
+ text-align: center;
+ }
+ .visual-container .visual-area + .visual-area, .visual-container .visual-area {
+ padding: 40px 0;
+ }
+ .plan {
+ max-width: 260px;
+
+ .head {
+ padding: 6px 12px 20px;
+ }
+ &.recommended {
+ max-width: 300px;
+ }
+ }
+ .pricing-tables {
+ padding: 20px 0 40px;
+ }
+ .visual-container .visual-area > .container > p {
+ margin: 0;
+ }
+ .pricing-tables h3 {
+ font-size: 1.6rem;
+ line-height: 1.5;
+ margin: 20px 0 10px;
+ }
+ .price .price-main {
+ font-size: 5rem;
+ line-height: 1.12;
+ padding: 0 0 12px;
+ }
+ .price .price-main .symbol {
+ font-size: 1.6;
+ line-height: 1.5;
+ }
+ .price .price-additional {
+ padding: 0 0 24px;
+ font-size: 1.2rem;
+ line-height: 1.5;
+ }
+ .subscribe {
+ margin: -20px 0;
+ }
+ .subscribe .form-group {
+ margin: 0;
+ }
+ .subscribe .btn {
+ padding: 10px 25px;
+ margin: 0 0 0 10px;
+ }
+ .subscribe .form-control {
+ min-width: 0;
+ }
+ .subscribe h3 {
+ font-size: 2rem;
+ line-height: 1.3;
+ margin: 0 0 20px;
+ }
+ .main .content {
+ padding: 0;
+ }
+ .main .col-md-4 h3:first-child {
+ margin: 20px 0 10px;
+ }
+ .main .col-md-4:first-child h3 {
+ margin: 0 0 10px;
+ }
+ .footer-holder {
+ padding: 20px 0;
+ }
+ .cycle-gallery {
+ font-size: 1.4rem;
+ line-height: 1.285;
+ }
+}
+@media only screen and (min-width:1025px) {
+ [href^='tel:'] {
+ cursor: default;
+ pointer-events: none;
+ }
+}
\ No newline at end of file
diff --git a/scss/base/_markup-mixins.scss b/scss/base/_markup-mixins.scss
new file mode 100644
index 00000000..f89ec395
--- /dev/null
+++ b/scss/base/_markup-mixins.scss
@@ -0,0 +1,136 @@
+// breakpoints
+$mobile: 767px; // mobile 767px and less
+$tablet: 1025px; // tablet 1025px {desctop - 1} and less
+$retina: 1.5; // standart retina > 1.5x
+$retina-hd: 2.5; // hd retina > 2.5x
+
+// breakpoints mixin
+@mixin breakpoint($rule){
+ @if ($rule == $retina or $rule == $retina-hd){
+ @media only screen and ( min-resolution : #{$retina*96} ), ( -webkit-min-device-pixel-ratio : #{$retina} ){
+ @content;
+ }
+ }
+ @else{
+ @media only screen and (max-width: #{$rule}){
+ @content;
+ }
+ }
+}
+
+/// breakpoints mixin usage
+/// selector{
+/// height:100px;
+/// @include breakpoint($tablet){
+/// height:50px;
+/// }
+/// }
+
+
+// clearfix
+%clearfix {
+ &:after {
+ content: " ";
+ display: block;
+ clear: both;
+ }
+}
+
+// reset for list
+%listreset {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+// hide text
+@mixin hide-text {
+ overflow: hidden;
+ text-indent: -9999px;
+}
+
+// placeholder
+@mixin placeholder {
+ &::-webkit-input-placeholder {@content}
+ &::-moz-placeholder {opacity: 1; @content}
+ &:-moz-placeholder {@content}
+ &:-ms-input-placeholder {@content}
+ &.placeholder {@content}
+}
+
+// full width
+%full-width {
+ padding-left: 9999px;
+ padding-right: 9999px;
+ margin-left: -9999px;
+ margin-right: -9999px;
+}
+
+// retina images
+@mixin img-retina($image, $extension, $width, $height) {
+ background: url('../images/' + $image + '.' + $extension) no-repeat;
+ width: $width;
+ height: $height;
+
+ @media (min--moz-device-pixel-ratio: 1.3),
+ (-o-min-device-pixel-ratio: 2.6/2),
+ (-webkit-min-device-pixel-ratio: 1.3),
+ (min-device-pixel-ratio: 1.3),
+ (min-resolution: 1.3dppx) {
+ background-image: url('../images/' + $image + '@2x' + '.' + $extension);
+ background-size: $width $height;
+ }
+}
+
+// from http://codepen.io/MichaelArestad/pen/IxFGj
+@mixin arrow-lazy($al-direction: top, $al-size: 10px, $al-color: #ccc, $al-center: 50%, $al-margin: -1px, $al-pseudo: before){
+ position: relative;
+ border-color: $al-color;
+
+ &:#{$al-pseudo} {
+ position: absolute;
+ content: "";
+ width: 0;
+ height: 0;
+ border: 0;
+ border-color: $al-color;
+
+ @if $al-direction == "right" {
+ top: $al-center;
+ left: 100%;
+ margin-left: $al-margin;
+ margin-top: $al-size * -1;
+ border-top: $al-size solid transparent;
+ border-bottom: $al-size solid transparent;
+ border-left: $al-size solid $al-color;
+ border-left-color: inherit;
+ } @else if $al-direction == "down" {
+ top: 100%;
+ left: $al-center;
+ margin-top: $al-margin;
+ margin-left: $al-size * -1;
+ border-left: $al-size solid transparent;
+ border-right: $al-size solid transparent;
+ border-top: $al-size solid $al-color;
+ border-top-color: inherit;
+ } @else if $al-direction == "left" {
+ top: $al-center;
+ right: 100%;
+ margin-right: $al-margin;
+ margin-top: $al-size * -1;
+ border-top: $al-size solid transparent;
+ border-bottom: $al-size solid transparent;
+ border-right:$al-size solid $al-color;
+ border-right-color: inherit;
+ } @else {
+ bottom: 100%;
+ left: $al-center;
+ margin-bottom: $al-margin;
+ margin-left: $al-size * -1;
+ border-left: $al-size solid transparent;
+ border-right: $al-size solid transparent;
+ border-bottom: $al-size solid $al-color;
+ border-bottom-color: inherit;
+ }
+ }
+}
\ No newline at end of file
diff --git a/scss/bootstrap.scss b/scss/bootstrap.scss
new file mode 100644
index 00000000..c28e1918
--- /dev/null
+++ b/scss/bootstrap.scss
@@ -0,0 +1,52 @@
+@import "bootstrap-custom"; // for customization bootstrap
+
+// Core variables and mixins
+@import "bootstrap/variables";
+@import "bootstrap/mixins";
+
+// Reset and dependencies
+@import "bootstrap/normalize";
+@import "bootstrap/print";
+@import "bootstrap/glyphicons";
+
+// Core CSS
+@import "bootstrap/scaffolding";
+@import "bootstrap/type";
+@import "bootstrap/code";
+@import "bootstrap/grid";
+@import "bootstrap/tables";
+@import "bootstrap/forms";
+@import "bootstrap/buttons";
+
+// Components
+@import "bootstrap/component-animations";
+@import "bootstrap/dropdowns";
+@import "bootstrap/button-groups";
+@import "bootstrap/input-groups";
+@import "bootstrap/navs";
+@import "bootstrap/navbar";
+@import "bootstrap/breadcrumbs";
+@import "bootstrap/pagination";
+@import "bootstrap/pager";
+@import "bootstrap/labels";
+@import "bootstrap/badges";
+@import "bootstrap/jumbotron";
+@import "bootstrap/thumbnails";
+@import "bootstrap/alerts";
+@import "bootstrap/progress-bars";
+@import "bootstrap/media";
+@import "bootstrap/list-group";
+@import "bootstrap/panels";
+@import "bootstrap/responsive-embed";
+@import "bootstrap/wells";
+@import "bootstrap/close";
+
+// Components w/ JavaScript
+@import "bootstrap/modals";
+@import "bootstrap/tooltip";
+@import "bootstrap/popovers";
+@import "bootstrap/carousel";
+
+// Utility classes
+@import "bootstrap/utilities";
+@import "bootstrap/responsive-utilities";
diff --git a/scss/bootstrap/_alerts.scss b/scss/bootstrap/_alerts.scss
new file mode 100644
index 00000000..372eec97
--- /dev/null
+++ b/scss/bootstrap/_alerts.scss
@@ -0,0 +1,73 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert {
+ padding: $alert-padding;
+ margin-bottom: $line-height-computed;
+ border: 1px solid transparent;
+ border-radius: $alert-border-radius;
+
+ // Headings for larger alerts
+ h4 {
+ margin-top: 0;
+ // Specified for the h4 to prevent conflicts of changing $headings-color
+ color: inherit;
+ }
+
+ // Provide class for links that match alerts
+ .alert-link {
+ font-weight: $alert-link-font-weight;
+ }
+
+ // Improve alignment and spacing of inner content
+ > p,
+ > ul {
+ margin-bottom: 0;
+ }
+
+ > p + p {
+ margin-top: 5px;
+ }
+}
+
+// Dismissible alerts
+//
+// Expand the right padding and account for the close button's positioning.
+
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
+.alert-dismissible {
+ padding-right: ($alert-padding + 20);
+
+ // Adjust close link position
+ .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+ }
+}
+
+// Alternate styles
+//
+// Generate contextual modifier classes for colorizing the alert.
+
+.alert-success {
+ @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
+}
+
+.alert-info {
+ @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
+}
+
+.alert-warning {
+ @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
+}
+
+.alert-danger {
+ @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
+}
diff --git a/scss/bootstrap/_badges.scss b/scss/bootstrap/_badges.scss
new file mode 100644
index 00000000..a647592d
--- /dev/null
+++ b/scss/bootstrap/_badges.scss
@@ -0,0 +1,67 @@
+//
+// Badges
+// --------------------------------------------------
+
+
+// Base class
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: $font-size-small;
+ font-weight: $badge-font-weight;
+ color: $badge-color;
+ line-height: $badge-line-height;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-align: center;
+ background-color: $badge-bg;
+ border-radius: $badge-border-radius;
+
+ // Empty badges collapse automatically (not available in IE8)
+ &:empty {
+ display: none;
+ }
+
+ // Quick fix for badges in buttons
+ .btn & {
+ position: relative;
+ top: -1px;
+ }
+
+ .btn-xs & {
+ top: 0;
+ padding: 1px 5px;
+ }
+
+ // [converter] extracted a& to a.badge
+
+ // Account for badges in navs
+ .list-group-item.active > &,
+ .nav-pills > .active > a > & {
+ color: $badge-active-color;
+ background-color: $badge-active-bg;
+ }
+
+ .list-group-item > & {
+ float: right;
+ }
+
+ .list-group-item > & + & {
+ margin-right: 5px;
+ }
+
+ .nav-pills > li > a > & {
+ margin-left: 3px;
+ }
+}
+
+// Hover state, but only for links
+a.badge {
+ &:hover,
+ &:focus {
+ color: $badge-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
diff --git a/scss/bootstrap/_breadcrumbs.scss b/scss/bootstrap/_breadcrumbs.scss
new file mode 100644
index 00000000..51b676cb
--- /dev/null
+++ b/scss/bootstrap/_breadcrumbs.scss
@@ -0,0 +1,26 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+ padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
+ margin-bottom: $line-height-computed;
+ list-style: none;
+ background-color: $breadcrumb-bg;
+ border-radius: $border-radius-base;
+
+ > li {
+ display: inline-block;
+
+ + li:before {
+ content: #{$breadcrumb-separator}\00a0; // Unicode space added since inline-block means non-collapsing white-space
+ padding: 0 5px;
+ color: $breadcrumb-color;
+ }
+ }
+
+ > .active {
+ color: $breadcrumb-active-color;
+ }
+}
diff --git a/scss/bootstrap/_button-groups.scss b/scss/bootstrap/_button-groups.scss
new file mode 100644
index 00000000..a73bc54d
--- /dev/null
+++ b/scss/bootstrap/_button-groups.scss
@@ -0,0 +1,243 @@
+//
+// Button groups
+// --------------------------------------------------
+
+// Make the div behave like a button
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle; // match .btn alignment given font-size hack above
+ > .btn {
+ position: relative;
+ float: left;
+ // Bring the "active" button to the front
+ &:hover,
+ &:focus,
+ &:active,
+ &.active {
+ z-index: 2;
+ }
+ }
+}
+
+// Prevent double borders when buttons are next to each other
+.btn-group {
+ .btn + .btn,
+ .btn + .btn-group,
+ .btn-group + .btn,
+ .btn-group + .btn-group {
+ margin-left: -1px;
+ }
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+ margin-left: -5px; // Offset the first child's margin
+ @include clearfix;
+
+ .btn-group,
+ .input-group {
+ float: left;
+ }
+ > .btn,
+ > .btn-group,
+ > .input-group {
+ margin-left: 5px;
+ }
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+
+// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ &:not(:last-child):not(.dropdown-toggle) {
+ @include border-right-radius(0);
+ }
+}
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ @include border-left-radius(0);
+}
+
+// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
+.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,
+ > .dropdown-toggle {
+ @include border-right-radius(0);
+ }
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ @include border-left-radius(0);
+}
+
+// On active and open, don't show outline
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+
+// Sizing
+//
+// Remix the default button sizing classes into new ones for easier manipulation.
+
+.btn-group-xs > .btn { @extend .btn-xs; }
+.btn-group-sm > .btn { @extend .btn-sm; }
+.btn-group-lg > .btn { @extend .btn-lg; }
+
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+
+// The clickable button for toggling the menu
+// Remove the gradient and set the same inset shadow as the :active state
+.btn-group.open .dropdown-toggle {
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+
+ // Show no shadow for `.btn-link` since it has no other button styles.
+ &.btn-link {
+ @include box-shadow(none);
+ }
+}
+
+
+// Reposition the caret
+.btn .caret {
+ margin-left: 0;
+}
+// Carets in other button sizes
+.btn-lg .caret {
+ border-width: $caret-width-large $caret-width-large 0;
+ border-bottom-width: 0;
+}
+// Upside down carets for .dropup
+.dropup .btn-lg .caret {
+ border-width: 0 $caret-width-large $caret-width-large;
+}
+
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical {
+ > .btn,
+ > .btn-group,
+ > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+ }
+
+ // Clear floats so dropdown menus can be properly placed
+ > .btn-group {
+ @include clearfix;
+ > .btn {
+ float: none;
+ }
+ }
+
+ > .btn + .btn,
+ > .btn + .btn-group,
+ > .btn-group + .btn,
+ > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+ }
+}
+
+.btn-group-vertical > .btn {
+ &:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+ &:first-child:not(:last-child) {
+ border-top-right-radius: $border-radius-base;
+ @include border-bottom-radius(0);
+ }
+ &:last-child:not(:first-child) {
+ border-bottom-left-radius: $border-radius-base;
+ @include border-top-radius(0);
+ }
+}
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn-group:first-child:not(:last-child) {
+ > .btn:last-child,
+ > .dropdown-toggle {
+ @include border-bottom-radius(0);
+ }
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ @include border-top-radius(0);
+}
+
+
+// Justified button groups
+// ----------------------
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+ > .btn,
+ > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+ }
+ > .btn-group .btn {
+ width: 100%;
+ }
+
+ > .btn-group .dropdown-menu {
+ left: auto;
+ }
+}
+
+
+// Checkbox and radio options
+//
+// In order to support the browser's form validation feedback, powered by the
+// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
+// `display: none;` or `visibility: hidden;` as that also hides the popover.
+// Simply visually hiding the inputs via `opacity` would leave them clickable in
+// certain cases which is prevented by using `clip` and `pointer-events`.
+// This way, we ensure a DOM element is visible to position the popover from.
+//
+// See https://github.com/twbs/bootstrap/pull/12794 and
+// https://github.com/twbs/bootstrap/pull/14559 for more information.
+
+[data-toggle="buttons"] {
+ > .btn,
+ > .btn-group > .btn {
+ input[type="radio"],
+ input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0,0,0,0);
+ pointer-events: none;
+ }
+ }
+}
diff --git a/scss/bootstrap/_buttons.scss b/scss/bootstrap/_buttons.scss
new file mode 100644
index 00000000..7f0db458
--- /dev/null
+++ b/scss/bootstrap/_buttons.scss
@@ -0,0 +1,160 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+.btn {
+ display: inline-block;
+ margin-bottom: 0; // For input.btn
+ font-weight: $btn-font-weight;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid transparent;
+ white-space: nowrap;
+ @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
+ @include user-select(none);
+
+ &,
+ &:active,
+ &.active {
+ &:focus,
+ &.focus {
+ @include tab-focus;
+ }
+ }
+
+ &:hover,
+ &:focus,
+ &.focus {
+ color: $btn-default-color;
+ text-decoration: none;
+ }
+
+ &:active,
+ &.active {
+ outline: 0;
+ background-image: none;
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ cursor: $cursor-disabled;
+ pointer-events: none; // Future-proof disabling of clicks
+ @include opacity(.65);
+ @include box-shadow(none);
+ }
+}
+
+
+// Alternate buttons
+// --------------------------------------------------
+
+.btn-default {
+ @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
+}
+.btn-primary {
+ @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
+}
+// Success appears as green
+.btn-success {
+ @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
+}
+// Info appears as blue-green
+.btn-info {
+ @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
+}
+// Warning appears as orange
+.btn-warning {
+ @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
+}
+// Danger and error appear as red
+.btn-danger {
+ @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
+}
+
+
+// Link buttons
+// -------------------------
+
+// Make a button look and behave like a link
+.btn-link {
+ color: $link-color;
+ font-weight: normal;
+ border-radius: 0;
+
+ &,
+ &:active,
+ &.active,
+ &[disabled],
+ fieldset[disabled] & {
+ background-color: transparent;
+ @include box-shadow(none);
+ }
+ &,
+ &:hover,
+ &:focus,
+ &:active {
+ border-color: transparent;
+ }
+ &:hover,
+ &:focus {
+ color: $link-hover-color;
+ text-decoration: $link-hover-decoration;
+ background-color: transparent;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: $btn-link-disabled-color;
+ text-decoration: none;
+ }
+ }
+}
+
+
+// Button Sizes
+// --------------------------------------------------
+
+.btn-lg {
+ // line-height: ensure even-numbered height of button next to large input
+ @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
+}
+.btn-sm {
+ // line-height: ensure proper height of button next to small input
+ @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
+}
+.btn-xs {
+ @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
+}
+
+
+// Block button
+// --------------------------------------------------
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+
+// Vertically space out multiple block buttons
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+// Specificity overrides
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+ &.btn-block {
+ width: 100%;
+ }
+}
diff --git a/scss/bootstrap/_carousel.scss b/scss/bootstrap/_carousel.scss
new file mode 100644
index 00000000..f91d7ee3
--- /dev/null
+++ b/scss/bootstrap/_carousel.scss
@@ -0,0 +1,269 @@
+//
+// Carousel
+// --------------------------------------------------
+
+
+// Wrapper for the slide container and indicators
+.carousel {
+ position: relative;
+}
+
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+
+ > .item {
+ display: none;
+ position: relative;
+ @include transition(.6s ease-in-out left);
+
+ // Account for jankitude on images
+ > img,
+ > a > img {
+ @include img-responsive;
+ line-height: 1;
+ }
+
+ // WebKit CSS3 transforms for supported devices
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ @include transition-transform(0.6s ease-in-out);
+ @include backface-visibility(hidden);
+ @include perspective(1000);
+
+ &.next,
+ &.active.right {
+ @include translate3d(100%, 0, 0);
+ left: 0;
+ }
+ &.prev,
+ &.active.left {
+ @include translate3d(-100%, 0, 0);
+ left: 0;
+ }
+ &.next.left,
+ &.prev.right,
+ &.active {
+ @include translate3d(0, 0, 0);
+ left: 0;
+ }
+ }
+ }
+
+ > .active,
+ > .next,
+ > .prev {
+ display: block;
+ }
+
+ > .active {
+ left: 0;
+ }
+
+ > .next,
+ > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ > .next {
+ left: 100%;
+ }
+ > .prev {
+ left: -100%;
+ }
+ > .next.left,
+ > .prev.right {
+ left: 0;
+ }
+
+ > .active.left {
+ left: -100%;
+ }
+ > .active.right {
+ left: 100%;
+ }
+
+}
+
+// Left/right controls for nav
+// ---------------------------
+
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: $carousel-control-width;
+ @include opacity($carousel-control-opacity);
+ font-size: $carousel-control-font-size;
+ color: $carousel-control-color;
+ text-align: center;
+ text-shadow: $carousel-text-shadow;
+ // We can't have this transition here because WebKit cancels the carousel
+ // animation if you trip this while in the middle of another animation.
+
+ // Set gradients for backgrounds
+ &.left {
+ @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
+ }
+ &.right {
+ left: auto;
+ right: 0;
+ @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
+ }
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ outline: 0;
+ color: $carousel-control-color;
+ text-decoration: none;
+ @include opacity(.9);
+ }
+
+ // Toggles
+ .icon-prev,
+ .icon-next,
+ .glyphicon-chevron-left,
+ .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+ }
+ .icon-prev,
+ .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+ }
+ .icon-next,
+ .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+ }
+ .icon-prev,
+ .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ line-height: 1;
+ font-family: serif;
+ }
+
+
+ .icon-prev {
+ &:before {
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
+ }
+ }
+ .icon-next {
+ &:before {
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
+ }
+ }
+}
+
+// Optional indicator pips
+//
+// Add an unordered list with the following class and add a list item for each
+// slide your carousel holds.
+
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+
+ li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid $carousel-indicator-border-color;
+ border-radius: 10px;
+ cursor: pointer;
+
+ // IE8-9 hack for event handling
+ //
+ // Internet Explorer 8-9 does not support clicks on elements without a set
+ // `background-color`. We cannot use `filter` since that's not viewed as a
+ // background color by the browser. Thus, a hack is needed.
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
+ //
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
+ // set alpha transparency for the best results possible.
+ background-color: #000 \9; // IE8
+ background-color: rgba(0,0,0,0); // IE9
+ }
+ .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: $carousel-indicator-active-bg;
+ }
+}
+
+// Optional captions
+// -----------------------------
+// Hidden by default for smaller viewports
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: $carousel-caption-color;
+ text-align: center;
+ text-shadow: $carousel-text-shadow;
+ & .btn {
+ text-shadow: none; // No shadow for button elements in carousel-caption
+ }
+}
+
+
+// Scale up controls for tablets and up
+@media screen and (min-width: $screen-sm-min) {
+
+ // Scale up the controls a smidge
+ .carousel-control {
+ .glyphicon-chevron-left,
+ .glyphicon-chevron-right,
+ .icon-prev,
+ .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ font-size: 30px;
+ }
+ .glyphicon-chevron-left,
+ .icon-prev {
+ margin-left: -15px;
+ }
+ .glyphicon-chevron-right,
+ .icon-next {
+ margin-right: -15px;
+ }
+ }
+
+ // Show and left align the captions
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+
+ // Move up the indicators
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
diff --git a/scss/bootstrap/_close.scss b/scss/bootstrap/_close.scss
new file mode 100644
index 00000000..3b74d8a9
--- /dev/null
+++ b/scss/bootstrap/_close.scss
@@ -0,0 +1,36 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+ float: right;
+ font-size: ($font-size-base * 1.5);
+ font-weight: $close-font-weight;
+ line-height: 1;
+ color: $close-color;
+ text-shadow: $close-text-shadow;
+ @include opacity(.2);
+
+ &:hover,
+ &:focus {
+ color: $close-color;
+ text-decoration: none;
+ cursor: pointer;
+ @include opacity(.5);
+ }
+
+ // [converter] extracted button& to button.close
+}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
diff --git a/scss/bootstrap/_code.scss b/scss/bootstrap/_code.scss
new file mode 100644
index 00000000..caa5f063
--- /dev/null
+++ b/scss/bootstrap/_code.scss
@@ -0,0 +1,69 @@
+//
+// Code (inline and block)
+// --------------------------------------------------
+
+
+// Inline and block code styles
+code,
+kbd,
+pre,
+samp {
+ font-family: $font-family-monospace;
+}
+
+// Inline code
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: $code-color;
+ background-color: $code-bg;
+ border-radius: $border-radius-base;
+}
+
+// User input typically entered via keyboard
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: $kbd-color;
+ background-color: $kbd-bg;
+ border-radius: $border-radius-small;
+ box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
+
+ kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none;
+ }
+}
+
+// Blocks of code
+pre {
+ display: block;
+ padding: (($line-height-computed - 1) / 2);
+ margin: 0 0 ($line-height-computed / 2);
+ font-size: ($font-size-base - 1); // 14px to 13px
+ line-height: $line-height-base;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: $pre-color;
+ background-color: $pre-bg;
+ border: 1px solid $pre-border-color;
+ border-radius: $border-radius-base;
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+ }
+}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: $pre-scrollable-max-height;
+ overflow-y: scroll;
+}
diff --git a/scss/bootstrap/_component-animations.scss b/scss/bootstrap/_component-animations.scss
new file mode 100644
index 00000000..1f76b8c0
--- /dev/null
+++ b/scss/bootstrap/_component-animations.scss
@@ -0,0 +1,38 @@
+//
+// Component animations
+// --------------------------------------------------
+
+// Heads up!
+//
+// We don't use the `.opacity()` mixin here since it causes a bug with text
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
+
+.fade {
+ opacity: 0;
+ @include transition(opacity .15s linear);
+ &.in {
+ opacity: 1;
+ }
+}
+
+.collapse {
+ display: none;
+ visibility: hidden;
+
+ &.in { display: block; visibility: visible; }
+ // [converter] extracted tr&.in to tr.collapse.in
+ // [converter] extracted tbody&.in to tbody.collapse.in
+}
+
+tr.collapse.in { display: table-row; }
+
+tbody.collapse.in { display: table-row-group; }
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ @include transition-property(height, visibility);
+ @include transition-duration(.35s);
+ @include transition-timing-function(ease);
+}
diff --git a/scss/bootstrap/_dropdowns.scss b/scss/bootstrap/_dropdowns.scss
new file mode 100644
index 00000000..b8120b8e
--- /dev/null
+++ b/scss/bootstrap/_dropdowns.scss
@@ -0,0 +1,214 @@
+//
+// Dropdown menus
+// --------------------------------------------------
+
+
+// Dropdown arrow/caret
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: $caret-width-base solid;
+ border-right: $caret-width-base solid transparent;
+ border-left: $caret-width-base solid transparent;
+}
+
+// The dropdown wrapper (div)
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+// Prevent the focus on the dropdown toggle when closing dropdowns
+.dropdown-toggle:focus {
+ outline: 0;
+}
+
+// The dropdown menu (ul)
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: $zindex-dropdown;
+ display: none; // none by default, but block on "open" of the menu
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0; // override default ul
+ list-style: none;
+ font-size: $font-size-base;
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
+ background-color: $dropdown-bg;
+ border: 1px solid $dropdown-fallback-border; // IE8 fallback
+ border: 1px solid $dropdown-border;
+ border-radius: $border-radius-base;
+ @include box-shadow(0 6px 12px rgba(0,0,0,.175));
+ background-clip: padding-box;
+
+ // Aligns the dropdown menu to right
+ //
+ // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
+ &.pull-right {
+ right: 0;
+ left: auto;
+ }
+
+ // Dividers (basically an hr) within the dropdown
+ .divider {
+ @include nav-divider($dropdown-divider-bg);
+ }
+
+ // Links within the dropdown menu
+ > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: $line-height-base;
+ color: $dropdown-link-color;
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
+ }
+}
+
+// Hover/Focus state
+.dropdown-menu > li > a {
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ color: $dropdown-link-hover-color;
+ background-color: $dropdown-link-hover-bg;
+ }
+}
+
+// Active state
+.dropdown-menu > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $dropdown-link-active-color;
+ text-decoration: none;
+ outline: 0;
+ background-color: $dropdown-link-active-bg;
+ }
+}
+
+// Disabled state
+//
+// Gray out text and ensure the hover/focus state remains gray
+
+.dropdown-menu > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $dropdown-link-disabled-color;
+ }
+
+ // Nuke hover/focus effects
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none; // Remove CSS gradient
+ @include reset-filter;
+ cursor: $cursor-disabled;
+ }
+}
+
+// Open state for the dropdown
+.open {
+ // Show the menu
+ > .dropdown-menu {
+ display: block;
+ }
+
+ // Remove the outline when :focus is triggered
+ > a {
+ outline: 0;
+ }
+}
+
+// Menu positioning
+//
+// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
+// menu with the parent.
+.dropdown-menu-right {
+ left: auto; // Reset the default from `.dropdown-menu`
+ right: 0;
+}
+// With v3, we enabled auto-flipping if you have a dropdown within a right
+// aligned nav component. To enable the undoing of that, we provide an override
+// to restore the default dropdown menu alignment.
+//
+// This is only for left-aligning a dropdown menu within a `.navbar-right` or
+// `.pull-right` nav component.
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+
+// Dropdown section headers
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: $font-size-small;
+ line-height: $line-height-base;
+ color: $dropdown-header-color;
+ white-space: nowrap; // as with > li > a
+}
+
+// Backdrop to catch body clicks on mobile, etc.
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: ($zindex-dropdown - 10);
+}
+
+// Right aligned dropdowns
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+//
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: $caret-width-base solid;
+ content: "";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+ }
+}
+
+
+// Component alignment
+//
+// Reiterate per navbar.less and the modified component alignment there.
+
+@media (min-width: $grid-float-breakpoint) {
+ .navbar-right {
+ .dropdown-menu {
+ right: 0; left: auto;
+ }
+ // Necessary for overrides of the default right aligned menu.
+ // Will remove come v4 in all likelihood.
+ .dropdown-menu-left {
+ left: 0; right: auto;
+ }
+ }
+}
diff --git a/scss/bootstrap/_forms.scss b/scss/bootstrap/_forms.scss
new file mode 100644
index 00000000..72d130b7
--- /dev/null
+++ b/scss/bootstrap/_forms.scss
@@ -0,0 +1,570 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// Normalize non-controls
+//
+// Restyle and baseline non-control form elements.
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
+ // so we reset that to ensure it behaves more like a standard block element.
+ // See https://github.com/twbs/bootstrap/issues/12359.
+ min-width: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: $line-height-computed;
+ font-size: ($font-size-base * 1.5);
+ line-height: inherit;
+ color: $legend-color;
+ border: 0;
+ border-bottom: 1px solid $legend-border-color;
+}
+
+label {
+ display: inline-block;
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+
+
+// Normalize form controls
+//
+// While most of our form styles require extra classes, some basic normalization
+// is required to ensure optimum display with or without those classes to better
+// address browser inconsistencies.
+
+// Override content-box in Normalize (* isn't specific enough)
+input[type="search"] {
+ @include box-sizing(border-box);
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9; // IE8-9
+ line-height: normal;
+}
+
+// Set the height of file controls to match text inputs
+input[type="file"] {
+ display: block;
+}
+
+// Make range inputs behave like textual form controls
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+// Focus for file, radio, and checkbox
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ @include tab-focus;
+}
+
+// Adjust output element
+output {
+ display: block;
+ padding-top: ($padding-base-vertical + 1);
+ font-size: $font-size-base;
+ line-height: $line-height-base;
+ color: $input-color;
+}
+
+
+// Common form controls
+//
+// Shared size and type resets for form controls. Apply `.form-control` to any
+// of the following form controls:
+//
+// select
+// textarea
+// input[type="text"]
+// input[type="password"]
+// input[type="datetime"]
+// input[type="datetime-local"]
+// input[type="date"]
+// input[type="month"]
+// input[type="time"]
+// input[type="week"]
+// input[type="number"]
+// input[type="email"]
+// input[type="url"]
+// input[type="search"]
+// input[type="tel"]
+// input[type="color"]
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ padding: $padding-base-vertical $padding-base-horizontal;
+ font-size: $font-size-base;
+ line-height: $line-height-base;
+ color: $input-color;
+ background-color: $input-bg;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid $input-border;
+ border-radius: $input-border-radius; // Note: This has no effect on s in some browsers, due to the limited stylability of s in CSS.
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
+
+ // Customize the `:focus` state to imitate native WebKit styles.
+ @include form-control-focus;
+
+ // Placeholder
+ @include placeholder;
+
+ // Disabled and read-only inputs
+ //
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
+ // don't honor that edge case; we style them as disabled anyway.
+ &[disabled],
+ &[readonly],
+ fieldset[disabled] & {
+ cursor: $cursor-disabled;
+ background-color: $input-bg-disabled;
+ opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
+ }
+
+ // [converter] extracted textarea& to textarea.form-control
+}
+
+// Reset height for `textarea`s
+textarea.form-control {
+ height: auto;
+}
+
+
+// Search inputs in iOS
+//
+// This overrides the extra rounded corners on search inputs in iOS so that our
+// `.form-control` class can properly style them. Note that this cannot simply
+// be added to `.form-control` as it's not specific enough. For details, see
+// https://github.com/twbs/bootstrap/issues/11586.
+
+input[type="search"] {
+ -webkit-appearance: none;
+}
+
+
+// Special styles for iOS temporal inputs
+//
+// In Mobile Safari, setting `display: block` on temporal inputs causes the
+// text within the input to become vertically misaligned. As a workaround, we
+// set a pixel line-height that matches the given height of the input, but only
+// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
+
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"],
+ input[type="time"],
+ input[type="datetime-local"],
+ input[type="month"] {
+ line-height: $input-height-base;
+
+ &.input-sm,
+ .input-group-sm & {
+ line-height: $input-height-small;
+ }
+
+ &.input-lg,
+ .input-group-lg & {
+ line-height: $input-height-large;
+ }
+ }
+}
+
+
+// Form groups
+//
+// Designed to help with the organization and spacing of vertical forms. For
+// horizontal forms, use the predefined grid classes.
+
+.form-group {
+ margin-bottom: 15px;
+}
+
+
+// Checkboxes and radios
+//
+// Indent the labels to position radios/checkboxes as hanging controls.
+
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+
+ label {
+ min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+ }
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-left: -20px;
+ margin-top: 4px \9;
+}
+
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
+}
+
+// Radios and checkboxes on same line
+.radio-inline,
+.checkbox-inline {
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px; // space out consecutive inline controls
+}
+
+// Apply same disabled cursor tweak as for inputs
+// Some special care is needed because s don't inherit their parent's `cursor`.
+//
+// Note: Neither radios nor checkboxes can be readonly.
+input[type="radio"],
+input[type="checkbox"] {
+ &[disabled],
+ &.disabled,
+ fieldset[disabled] & {
+ cursor: $cursor-disabled;
+ }
+}
+// These classes are used directly on s
+.radio-inline,
+.checkbox-inline {
+ &.disabled,
+ fieldset[disabled] & {
+ cursor: $cursor-disabled;
+ }
+}
+// These classes are used on elements with descendants
+.radio,
+.checkbox {
+ &.disabled,
+ fieldset[disabled] & {
+ label {
+ cursor: $cursor-disabled;
+ }
+ }
+}
+
+
+// Static form control text
+//
+// Apply class to a `p` element to make any string of text align with labels in
+// a horizontal form layout.
+
+.form-control-static {
+ // Size it appropriately next to real form controls
+ padding-top: ($padding-base-vertical + 1);
+ padding-bottom: ($padding-base-vertical + 1);
+ // Remove default margin from `p`
+ margin-bottom: 0;
+
+ &.input-lg,
+ &.input-sm {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+
+
+// Form control sizing
+//
+// Build on `.form-control` with modifier classes to decrease or increase the
+// height and font-size of form controls.
+//
+// The `.form-group-* form-control` variations are sadly duplicated to avoid the
+// issue documented in https://github.com/twbs/bootstrap/issues/15074.
+
+@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
+.form-group-sm {
+
+ @include input-size('.form-control', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
+
+ .form-control-static {
+ height: $input-height-small;
+ padding: $padding-small-vertical $padding-small-horizontal;
+ font-size: $font-size-small;
+ line-height: $line-height-small;
+ }
+}
+
+@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
+.form-group-lg {
+
+ @include input-size('.form-control', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
+
+ .form-control-static {
+ height: $input-height-large;
+ padding: $padding-large-vertical $padding-large-horizontal;
+ font-size: $font-size-large;
+ line-height: $line-height-large;
+ }
+}
+
+
+// Form control feedback states
+//
+// Apply contextual and semantic states to individual form controls.
+
+.has-feedback {
+ // Enable absolute positioning
+ position: relative;
+
+ // Ensure icons don't overlap text
+ .form-control {
+ padding-right: ($input-height-base * 1.25);
+ }
+}
+// Feedback icon (requires .glyphicon classes)
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2; // Ensure icon is above input groups
+ display: block;
+ width: $input-height-base;
+ height: $input-height-base;
+ line-height: $input-height-base;
+ text-align: center;
+ pointer-events: none;
+}
+.input-lg + .form-control-feedback {
+ width: $input-height-large;
+ height: $input-height-large;
+ line-height: $input-height-large;
+}
+.input-sm + .form-control-feedback {
+ width: $input-height-small;
+ height: $input-height-small;
+ line-height: $input-height-small;
+}
+
+// Feedback states
+.has-success {
+ @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
+}
+.has-warning {
+ @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
+}
+.has-error {
+ @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
+}
+
+// Reposition feedback icon if input has visible label above
+.has-feedback label {
+
+ & ~ .form-control-feedback {
+ top: ($line-height-computed + 5); // Height of the `label` and its margin
+ }
+ &.sr-only ~ .form-control-feedback {
+ top: 0;
+ }
+}
+
+
+// Help text
+//
+// Apply to any element you wish to create light text for placement immediately
+// below a form control. Use for general help, formatting, or instructional text.
+
+.help-block {
+ display: block; // account for any element using help-block
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: lighten($text-color, 25%); // lighten the text some for contrast
+}
+
+
+// Inline forms
+//
+// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
+// forms begin stacked on extra small (mobile) devices and then go inline when
+// viewports reach <768px.
+//
+// Requires wrapping inputs and labels with `.form-group` for proper display of
+// default HTML form controls and our custom form controls (e.g., input groups).
+//
+// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
+
+// [converter] extracted from `.form-inline` for libsass compatibility
+@mixin form-inline {
+
+ // Kick in the inline
+ @media (min-width: $screen-sm-min) {
+ // Inline-block all the things for "inline"
+ .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ // In navbar-form, allow folks to *not* use `.form-group`
+ .form-control {
+ display: inline-block;
+ width: auto; // Prevent labels from stacking above inputs in `.form-group`
+ vertical-align: middle;
+ }
+
+ // Make static controls behave like regular ones
+ .form-control-static {
+ display: inline-block;
+ }
+
+ .input-group {
+ display: inline-table;
+ vertical-align: middle;
+
+ .input-group-addon,
+ .input-group-btn,
+ .form-control {
+ width: auto;
+ }
+ }
+
+ // Input groups need that 100% width though
+ .input-group > .form-control {
+ width: 100%;
+ }
+
+ .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ // Remove default margin on radios/checkboxes that were used for stacking, and
+ // then undo the floating of radios and checkboxes to match.
+ .radio,
+ .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+
+ label {
+ padding-left: 0;
+ }
+ }
+ .radio input[type="radio"],
+ .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+
+ // Re-override the feedback icon.
+ .has-feedback .form-control-feedback {
+ top: 0;
+ }
+ }
+}
+// [converter] extracted as `@mixin form-inline` for libsass compatibility
+.form-inline {
+ @include form-inline;
+}
+
+
+
+// Horizontal forms
+//
+// Horizontal forms are built on grid classes and allow you to create forms with
+// labels on the left and inputs on the right.
+
+.form-horizontal {
+
+ // Consistent vertical alignment of radios and checkboxes
+ //
+ // Labels also get some reset styles, but that is scoped to a media query below.
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
+ }
+ // Account for padding we're adding to ensure the alignment and of help text
+ // and other content below items
+ .radio,
+ .checkbox {
+ min-height: ($line-height-computed + ($padding-base-vertical + 1));
+ }
+
+ // Make form groups behave like rows
+ .form-group {
+ @include make-row;
+ }
+
+ // Reset spacing and right align labels, but scope to media queries so that
+ // labels on narrow viewports stack the same as a default form example.
+ @media (min-width: $screen-sm-min) {
+ .control-label {
+ text-align: right;
+ margin-bottom: 0;
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
+ }
+ }
+
+ // Validation states
+ //
+ // Reposition the icon because it's now within a grid column and columns have
+ // `position: relative;` on them. Also accounts for the grid gutter padding.
+ .has-feedback .form-control-feedback {
+ right: ($grid-gutter-width / 2);
+ }
+
+ // Form group sizes
+ //
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
+ // inputs and labels within a `.form-group`.
+ .form-group-lg {
+ @media (min-width: $screen-sm-min) {
+ .control-label {
+ padding-top: (($padding-large-vertical * $line-height-large) + 1);
+ }
+ }
+ }
+ .form-group-sm {
+ @media (min-width: $screen-sm-min) {
+ .control-label {
+ padding-top: ($padding-small-vertical + 1);
+ }
+ }
+ }
+}
diff --git a/scss/bootstrap/_glyphicons.scss b/scss/bootstrap/_glyphicons.scss
new file mode 100644
index 00000000..dc95ed7d
--- /dev/null
+++ b/scss/bootstrap/_glyphicons.scss
@@ -0,0 +1,301 @@
+//
+// Glyphicons for Bootstrap
+//
+// Since icons are fonts, they can be placed anywhere text is placed and are
+// thus automatically sized to match the surrounding child. To use, create an
+// inline element with the appropriate classes, like so:
+//
+// Star
+
+// Import the fonts
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
+ src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
+}
+
+// Catchall baseclass
+.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;
+}
+
+// Individual icons
+.glyphicon-asterisk { &:before { content: "\2a"; } }
+.glyphicon-plus { &:before { content: "\2b"; } }
+.glyphicon-euro,
+.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"; } }
+// The following 2 Glyphicons are omitted for the time being because
+// they currently use Unicode codepoints that are outside the
+// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle
+// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.
+// Notably, the bug affects some older versions of the Android Browser.
+// More info: https://github.com/twbs/bootstrap/issues/10106
+// .glyphicon-door { &:before { content: "\1f6aa"; } }
+// .glyphicon-key { &:before { content: "\1f511"; } }
+.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"; } }
diff --git a/scss/bootstrap/_grid.scss b/scss/bootstrap/_grid.scss
new file mode 100644
index 00000000..b15ca27b
--- /dev/null
+++ b/scss/bootstrap/_grid.scss
@@ -0,0 +1,84 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Container widths
+//
+// Set the container width, and override it for fixed navbars in media queries.
+
+.container {
+ @include container-fixed;
+
+ @media (min-width: $screen-sm-min) {
+ width: $container-sm;
+ }
+ @media (min-width: $screen-md-min) {
+ width: $container-md;
+ }
+ @media (min-width: $screen-lg-min) {
+ width: $container-lg;
+ }
+}
+
+
+// Fluid container
+//
+// Utilizes the mixin meant for fixed width containers, but without any defined
+// width for fluid, full width layouts.
+
+.container-fluid {
+ @include container-fixed;
+}
+
+
+// Row
+//
+// Rows contain and clear the floats of your columns.
+
+.row {
+ @include make-row;
+}
+
+
+// Columns
+//
+// Common styles for small and large grid columns
+
+@include make-grid-columns;
+
+
+// Extra small grid
+//
+// Columns, offsets, pushes, and pulls for extra small devices like
+// smartphones.
+
+@include make-grid(xs);
+
+
+// Small grid
+//
+// Columns, offsets, pushes, and pulls for the small device range, from phones
+// to tablets.
+
+@media (min-width: $screen-sm-min) {
+ @include make-grid(sm);
+}
+
+
+// Medium grid
+//
+// Columns, offsets, pushes, and pulls for the desktop device range.
+
+@media (min-width: $screen-md-min) {
+ @include make-grid(md);
+}
+
+
+// Large grid
+//
+// Columns, offsets, pushes, and pulls for the large desktop device range.
+
+@media (min-width: $screen-lg-min) {
+ @include make-grid(lg);
+}
diff --git a/scss/bootstrap/_input-groups.scss b/scss/bootstrap/_input-groups.scss
new file mode 100644
index 00000000..ae0e921b
--- /dev/null
+++ b/scss/bootstrap/_input-groups.scss
@@ -0,0 +1,166 @@
+//
+// Input groups
+// --------------------------------------------------
+
+// Base styles
+// -------------------------
+.input-group {
+ position: relative; // For dropdowns
+ display: table;
+ border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
+
+ // Undo padding and float of grid classes
+ &[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .form-control {
+ // Ensure that the input is always above the *appended* addon button for
+ // proper border colors.
+ position: relative;
+ z-index: 2;
+
+ // IE9 fubars the placeholder attribute in text inputs and the arrows on
+ // select elements in input groups. To fix it, we float the input. Details:
+ // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
+ float: left;
+
+ width: 100%;
+ margin-bottom: 0;
+ }
+}
+
+// Sizing options
+//
+// Remix the default form control sizing classes into new ones for easier
+// manipulation.
+
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ @extend .input-lg;
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ @extend .input-sm;
+}
+
+
+// Display as table-cell
+// -------------------------
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+
+ &:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+}
+// Addon and addon wrapper for buttons
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle; // Match the inputs
+}
+
+// Text input groups
+// -------------------------
+.input-group-addon {
+ padding: $padding-base-vertical $padding-base-horizontal;
+ font-size: $font-size-base;
+ font-weight: normal;
+ line-height: 1;
+ color: $input-color;
+ text-align: center;
+ background-color: $input-group-addon-bg;
+ border: 1px solid $input-group-addon-border-color;
+ border-radius: $border-radius-base;
+
+ // Sizing
+ &.input-sm {
+ padding: $padding-small-vertical $padding-small-horizontal;
+ font-size: $font-size-small;
+ border-radius: $border-radius-small;
+ }
+ &.input-lg {
+ padding: $padding-large-vertical $padding-large-horizontal;
+ font-size: $font-size-large;
+ border-radius: $border-radius-large;
+ }
+
+ // Nuke default margins from checkboxes and radios to vertically center within.
+ input[type="radio"],
+ input[type="checkbox"] {
+ margin-top: 0;
+ }
+}
+
+// Reset rounded corners
+.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 {
+ @include border-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 {
+ @include border-left-radius(0);
+}
+.input-group-addon:last-child {
+ border-left: 0;
+}
+
+// Button input groups
+// -------------------------
+.input-group-btn {
+ position: relative;
+ // Jankily prevent input button groups from wrapping with `white-space` and
+ // `font-size` in combination with `inline-block` on buttons.
+ font-size: 0;
+ white-space: nowrap;
+
+ // Negative margin for spacing, position for bringing hovered/focused/actived
+ // element above the siblings.
+ > .btn {
+ position: relative;
+ + .btn {
+ margin-left: -1px;
+ }
+ // Bring the "active" button to the front
+ &:hover,
+ &:focus,
+ &:active {
+ z-index: 2;
+ }
+ }
+
+ // Negative margin to only have a 1px border between the two
+ &:first-child {
+ > .btn,
+ > .btn-group {
+ margin-right: -1px;
+ }
+ }
+ &:last-child {
+ > .btn,
+ > .btn-group {
+ margin-left: -1px;
+ }
+ }
+}
diff --git a/scss/bootstrap/_jumbotron.scss b/scss/bootstrap/_jumbotron.scss
new file mode 100644
index 00000000..e326b327
--- /dev/null
+++ b/scss/bootstrap/_jumbotron.scss
@@ -0,0 +1,50 @@
+//
+// Jumbotron
+// --------------------------------------------------
+
+
+.jumbotron {
+ padding: $jumbotron-padding ($jumbotron-padding / 2);
+ margin-bottom: $jumbotron-padding;
+ color: $jumbotron-color;
+ background-color: $jumbotron-bg;
+
+ h1,
+ .h1 {
+ color: $jumbotron-heading-color;
+ }
+
+ p {
+ margin-bottom: ($jumbotron-padding / 2);
+ font-size: $jumbotron-font-size;
+ font-weight: 200;
+ }
+
+ > hr {
+ border-top-color: darken($jumbotron-bg, 10%);
+ }
+
+ .container &,
+ .container-fluid & {
+ border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
+ }
+
+ .container {
+ max-width: 100%;
+ }
+
+ @media screen and (min-width: $screen-sm-min) {
+ padding: ($jumbotron-padding * 1.6) 0;
+
+ .container &,
+ .container-fluid & {
+ padding-left: ($jumbotron-padding * 2);
+ padding-right: ($jumbotron-padding * 2);
+ }
+
+ h1,
+ .h1 {
+ font-size: ($font-size-base * 4.5);
+ }
+ }
+}
diff --git a/scss/bootstrap/_labels.scss b/scss/bootstrap/_labels.scss
new file mode 100644
index 00000000..42ed6ea1
--- /dev/null
+++ b/scss/bootstrap/_labels.scss
@@ -0,0 +1,66 @@
+//
+// Labels
+// --------------------------------------------------
+
+.label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: $label-color;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+
+ // [converter] extracted a& to a.label
+
+ // Empty labels collapse automatically (not available in IE8)
+ &:empty {
+ display: none;
+ }
+
+ // Quick fix for labels in buttons
+ .btn & {
+ position: relative;
+ top: -1px;
+ }
+}
+
+// Add hover effects, but only for links
+a.label {
+ &:hover,
+ &:focus {
+ color: $label-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
+
+// Colors
+// Contextual variations (linked labels get darker on :hover)
+
+.label-default {
+ @include label-variant($label-default-bg);
+}
+
+.label-primary {
+ @include label-variant($label-primary-bg);
+}
+
+.label-success {
+ @include label-variant($label-success-bg);
+}
+
+.label-info {
+ @include label-variant($label-info-bg);
+}
+
+.label-warning {
+ @include label-variant($label-warning-bg);
+}
+
+.label-danger {
+ @include label-variant($label-danger-bg);
+}
diff --git a/scss/bootstrap/_list-group.scss b/scss/bootstrap/_list-group.scss
new file mode 100644
index 00000000..26b23ff8
--- /dev/null
+++ b/scss/bootstrap/_list-group.scss
@@ -0,0 +1,124 @@
+//
+// List groups
+// --------------------------------------------------
+
+
+// Base class
+//
+// Easily usable on , , or .
+
+.list-group {
+ // No need to set list-style: none; since .list-group-item is block level
+ margin-bottom: 20px;
+ padding-left: 0; // reset padding because ul and ol
+}
+
+
+// Individual list items
+//
+// Use on `li`s or `div`s within the `.list-group` parent.
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ // Place the border on the list items and negative margin up for better styling
+ margin-bottom: -1px;
+ background-color: $list-group-bg;
+ border: 1px solid $list-group-border;
+
+ // Round the first and last items
+ &:first-child {
+ @include border-top-radius($list-group-border-radius);
+ }
+ &:last-child {
+ margin-bottom: 0;
+ @include border-bottom-radius($list-group-border-radius);
+ }
+}
+
+
+// Linked list items
+//
+// Use anchor elements instead of `li`s or `div`s to create linked list items.
+// Includes an extra `.active` modifier class for showing selected items.
+
+a.list-group-item {
+ color: $list-group-link-color;
+
+ .list-group-item-heading {
+ color: $list-group-link-heading-color;
+ }
+
+ // Hover state
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ color: $list-group-link-hover-color;
+ background-color: $list-group-hover-bg;
+ }
+}
+
+.list-group-item {
+ // Disabled state
+ &.disabled,
+ &.disabled:hover,
+ &.disabled:focus {
+ background-color: $list-group-disabled-bg;
+ color: $list-group-disabled-color;
+ cursor: $cursor-disabled;
+
+ // Force color to inherit for custom content
+ .list-group-item-heading {
+ color: inherit;
+ }
+ .list-group-item-text {
+ color: $list-group-disabled-text-color;
+ }
+ }
+
+ // Active class on item itself, not parent
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ z-index: 2; // Place active items above their siblings for proper border styling
+ color: $list-group-active-color;
+ background-color: $list-group-active-bg;
+ border-color: $list-group-active-border;
+
+ // Force color to inherit for custom content
+ .list-group-item-heading,
+ .list-group-item-heading > small,
+ .list-group-item-heading > .small {
+ color: inherit;
+ }
+ .list-group-item-text {
+ color: $list-group-active-text-color;
+ }
+ }
+}
+
+
+// Contextual variants
+//
+// Add modifier classes to change text and background color on individual items.
+// Organizationally, this must come after the `:hover` states.
+
+@include list-group-item-variant(success, $state-success-bg, $state-success-text);
+@include list-group-item-variant(info, $state-info-bg, $state-info-text);
+@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
+@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
+
+
+// Custom content options
+//
+// Extra classes for creating well-formatted content within `.list-group-item`s.
+
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
diff --git a/scss/bootstrap/_media.scss b/scss/bootstrap/_media.scss
new file mode 100644
index 00000000..a6bf7819
--- /dev/null
+++ b/scss/bootstrap/_media.scss
@@ -0,0 +1,61 @@
+.media {
+ // Proper spacing between instances of .media
+ margin-top: 15px;
+
+ &:first-child {
+ margin-top: 0;
+ }
+}
+
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden;
+}
+
+.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;
+}
+
+// Reset margins on headings for tighter default spacing
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+// Media list variation
+//
+// Undo default ul/ol styles
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
diff --git a/scss/bootstrap/_mixins.scss b/scss/bootstrap/_mixins.scss
new file mode 100644
index 00000000..b565f013
--- /dev/null
+++ b/scss/bootstrap/_mixins.scss
@@ -0,0 +1,39 @@
+// Mixins
+// --------------------------------------------------
+
+// Utilities
+@import "mixins/hide-text";
+@import "mixins/opacity";
+@import "mixins/image";
+@import "mixins/labels";
+@import "mixins/reset-filter";
+@import "mixins/resize";
+@import "mixins/responsive-visibility";
+@import "mixins/size";
+@import "mixins/tab-focus";
+@import "mixins/text-emphasis";
+@import "mixins/text-overflow";
+@import "mixins/vendor-prefixes";
+
+// Components
+@import "mixins/alerts";
+@import "mixins/buttons";
+@import "mixins/panels";
+@import "mixins/pagination";
+@import "mixins/list-group";
+@import "mixins/nav-divider";
+@import "mixins/forms";
+@import "mixins/progress-bar";
+@import "mixins/table-row";
+
+// Skins
+@import "mixins/background-variant";
+@import "mixins/border-radius";
+@import "mixins/gradients";
+
+// Layout
+@import "mixins/clearfix";
+@import "mixins/center-block";
+@import "mixins/nav-vertical-align";
+@import "mixins/grid-framework";
+@import "mixins/grid";
diff --git a/scss/bootstrap/_modals.scss b/scss/bootstrap/_modals.scss
new file mode 100644
index 00000000..2fd097ca
--- /dev/null
+++ b/scss/bootstrap/_modals.scss
@@ -0,0 +1,148 @@
+//
+// Modals
+// --------------------------------------------------
+
+// .modal-open - body class for killing the scroll
+// .modal - container to scroll within
+// .modal-dialog - positioning shell for the actual modal
+// .modal-content - actual modal w/ bg and corners and shit
+
+// Kill the scroll on the body
+.modal-open {
+ overflow: hidden;
+}
+
+// Container that the modal scrolls within
+.modal {
+ display: none;
+ overflow: hidden;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $zindex-modal;
+ -webkit-overflow-scrolling: touch;
+
+ // Prevent Chrome on Windows from adding a focus outline. For details, see
+ // https://github.com/twbs/bootstrap/pull/10951.
+ outline: 0;
+
+ // When fading in the modal, animate it to slide down
+ &.fade .modal-dialog {
+ @include translate(0, -25%);
+ @include transition-transform(0.3s ease-out);
+ }
+ &.in .modal-dialog { @include translate(0, 0) }
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+// Shell div to position the modal with bottom padding
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+
+// Actual modal
+.modal-content {
+ position: relative;
+ background-color: $modal-content-bg;
+ border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
+ border: 1px solid $modal-content-border-color;
+ border-radius: $border-radius-large;
+ @include box-shadow(0 3px 9px rgba(0,0,0,.5));
+ background-clip: padding-box;
+ // Remove focus outline from opened modal
+ outline: 0;
+}
+
+// Modal background
+.modal-backdrop {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ background-color: $modal-backdrop-bg;
+ // Fade for backdrop
+ &.fade { @include opacity(0); }
+ &.in { @include opacity($modal-backdrop-opacity); }
+}
+
+// Modal header
+// Top section of the modal w/ title and dismiss
+.modal-header {
+ padding: $modal-title-padding;
+ border-bottom: 1px solid $modal-header-border-color;
+ min-height: ($modal-title-padding + $modal-title-line-height);
+}
+// Close icon
+.modal-header .close {
+ margin-top: -2px;
+}
+
+// Title text within header
+.modal-title {
+ margin: 0;
+ line-height: $modal-title-line-height;
+}
+
+// Modal body
+// Where all modal content resides (sibling of .modal-header and .modal-footer)
+.modal-body {
+ position: relative;
+ padding: $modal-inner-padding;
+}
+
+// Footer (for actions)
+.modal-footer {
+ padding: $modal-inner-padding;
+ text-align: right; // right align buttons
+ border-top: 1px solid $modal-footer-border-color;
+ @include clearfix; // clear it in case folks use .pull-* classes on buttons
+
+ // Properly space out buttons
+ .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
+ }
+ // but override that for button groups
+ .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
+ // and override it for block buttons as well
+ .btn-block + .btn-block {
+ margin-left: 0;
+ }
+}
+
+// Measure scrollbar width for padding body during modal show/hide
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
+// Scale up the modal
+@media (min-width: $screen-sm-min) {
+ // Automatically set modal's width for larger viewports
+ .modal-dialog {
+ width: $modal-md;
+ margin: 30px auto;
+ }
+ .modal-content {
+ @include box-shadow(0 5px 15px rgba(0,0,0,.5));
+ }
+
+ // Modal sizes
+ .modal-sm { width: $modal-sm; }
+}
+
+@media (min-width: $screen-md-min) {
+ .modal-lg { width: $modal-lg; }
+}
diff --git a/scss/bootstrap/_navbar.scss b/scss/bootstrap/_navbar.scss
new file mode 100644
index 00000000..ed36a993
--- /dev/null
+++ b/scss/bootstrap/_navbar.scss
@@ -0,0 +1,663 @@
+//
+// Navbars
+// --------------------------------------------------
+
+
+// Wrapper and base class
+//
+// Provide a static navbar from which we expand to create full-width, fixed, and
+// other navbar variations.
+
+.navbar {
+ position: relative;
+ min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
+ margin-bottom: $navbar-margin-bottom;
+ border: 1px solid transparent;
+
+ // Prevent floats from breaking the navbar
+ @include clearfix;
+
+ @media (min-width: $grid-float-breakpoint) {
+ border-radius: $navbar-border-radius;
+ }
+}
+
+
+// Navbar heading
+//
+// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
+// styling of responsive aspects.
+
+.navbar-header {
+ @include clearfix;
+
+ @media (min-width: $grid-float-breakpoint) {
+ float: left;
+ }
+}
+
+
+// Navbar collapse (body)
+//
+// Group your navbar content into this for easy collapsing and expanding across
+// various device sizes. By default, this content is collapsed when <768px, but
+// will expand past that for a horizontal display.
+//
+// To start (on mobile devices) the navbar links, forms, and buttons are stacked
+// vertically and include a `max-height` to overflow in case you have too much
+// content for the user's viewport.
+
+.navbar-collapse {
+ overflow-x: visible;
+ padding-right: $navbar-padding-horizontal;
+ padding-left: $navbar-padding-horizontal;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
+ @include clearfix;
+ -webkit-overflow-scrolling: touch;
+
+ &.in {
+ overflow-y: auto;
+ }
+
+ @media (min-width: $grid-float-breakpoint) {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+
+ &.collapse {
+ display: block !important;
+ visibility: visible !important;
+ height: auto !important;
+ padding-bottom: 0; // Override default setting
+ overflow: visible !important;
+ }
+
+ &.in {
+ overflow-y: visible;
+ }
+
+ // Undo the collapse side padding for navbars with containers to ensure
+ // alignment of right-aligned contents.
+ .navbar-fixed-top &,
+ .navbar-static-top &,
+ .navbar-fixed-bottom & {
+ padding-left: 0;
+ padding-right: 0;
+ }
+ }
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ .navbar-collapse {
+ max-height: $navbar-collapse-max-height;
+
+ @media (max-device-width: $screen-xs-min) and (orientation: landscape) {
+ max-height: 200px;
+ }
+ }
+}
+
+
+// Both navbar header and collapse
+//
+// When a container is present, change the behavior of the header and collapse.
+
+.container,
+.container-fluid {
+ > .navbar-header,
+ > .navbar-collapse {
+ margin-right: -$navbar-padding-horizontal;
+ margin-left: -$navbar-padding-horizontal;
+
+ @media (min-width: $grid-float-breakpoint) {
+ margin-right: 0;
+ margin-left: 0;
+ }
+ }
+}
+
+
+//
+// Navbar alignment options
+//
+// Display the navbar across the entirety of the page or fixed it to the top or
+// bottom of the page.
+
+// Static top (unfixed, but 100% wide) navbar
+.navbar-static-top {
+ z-index: $zindex-navbar;
+ border-width: 0 0 1px;
+
+ @media (min-width: $grid-float-breakpoint) {
+ border-radius: 0;
+ }
+}
+
+// Fix the top/bottom navbars when screen real estate supports it
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: $zindex-navbar-fixed;
+
+ // Undo the rounded corners
+ @media (min-width: $grid-float-breakpoint) {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0; // override .navbar defaults
+ border-width: 1px 0 0;
+}
+
+
+// Brand/project name
+
+.navbar-brand {
+ float: left;
+ padding: $navbar-padding-vertical $navbar-padding-horizontal;
+ font-size: $font-size-large;
+ line-height: $line-height-computed;
+ height: $navbar-height;
+
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
+
+ > img {
+ display: block;
+ }
+
+ @media (min-width: $grid-float-breakpoint) {
+ .navbar > .container &,
+ .navbar > .container-fluid & {
+ margin-left: -$navbar-padding-horizontal;
+ }
+ }
+}
+
+
+// Navbar toggle
+//
+// Custom button for toggling the `.navbar-collapse`, powered by the collapse
+// JavaScript plugin.
+
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: $navbar-padding-horizontal;
+ padding: 9px 10px;
+ @include navbar-vertical-align(34px);
+ background-color: transparent;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid transparent;
+ border-radius: $border-radius-base;
+
+ // We remove the `outline` here, but later compensate by attaching `:hover`
+ // styles to `:focus`.
+ &:focus {
+ outline: 0;
+ }
+
+ // Bars
+ .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+ }
+ .icon-bar + .icon-bar {
+ margin-top: 4px;
+ }
+
+ @media (min-width: $grid-float-breakpoint) {
+ display: none;
+ }
+}
+
+
+// Navbar nav links
+//
+// Builds on top of the `.nav` components with its own modifier class to make
+// the nav the full height of the horizontal nav (above 768px).
+
+.navbar-nav {
+ margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
+
+ > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: $line-height-computed;
+ }
+
+ @media (max-width: $grid-float-breakpoint-max) {
+ // Dropdowns get custom display when collapsed
+ .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ > li > a,
+ .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ > li > a {
+ line-height: $line-height-computed;
+ &:hover,
+ &:focus {
+ background-image: none;
+ }
+ }
+ }
+ }
+
+ // Uncollapse the nav
+ @media (min-width: $grid-float-breakpoint) {
+ float: left;
+ margin: 0;
+
+ > li {
+ float: left;
+ > a {
+ padding-top: $navbar-padding-vertical;
+ padding-bottom: $navbar-padding-vertical;
+ }
+ }
+ }
+}
+
+
+// Navbar form
+//
+// Extension of the `.form-inline` with some extra flavor for optimum display in
+// our navbars.
+
+.navbar-form {
+ margin-left: -$navbar-padding-horizontal;
+ margin-right: -$navbar-padding-horizontal;
+ padding: 10px $navbar-padding-horizontal;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
+ @include box-shadow($shadow);
+
+ // Mixin behavior for optimum display
+ @include form-inline;
+
+ .form-group {
+ @media (max-width: $grid-float-breakpoint-max) {
+ margin-bottom: 5px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ // Vertically center in expanded, horizontal navbar
+ @include navbar-vertical-align($input-height-base);
+
+ // Undo 100% width for pull classes
+ @media (min-width: $grid-float-breakpoint) {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ @include box-shadow(none);
+ }
+}
+
+
+// Dropdown menus
+
+// Menu position and menu carets
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ @include border-top-radius(0);
+}
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ @include border-top-radius($navbar-border-radius);
+ @include border-bottom-radius(0);
+}
+
+
+// Buttons in navbars
+//
+// Vertically center a button within a navbar (when *not* in a form).
+
+.navbar-btn {
+ @include navbar-vertical-align($input-height-base);
+
+ &.btn-sm {
+ @include navbar-vertical-align($input-height-small);
+ }
+ &.btn-xs {
+ @include navbar-vertical-align(22);
+ }
+}
+
+
+// Text in navbars
+//
+// Add a class to make any element properly align itself vertically within the navbars.
+
+.navbar-text {
+ @include navbar-vertical-align($line-height-computed);
+
+ @media (min-width: $grid-float-breakpoint) {
+ float: left;
+ margin-left: $navbar-padding-horizontal;
+ margin-right: $navbar-padding-horizontal;
+ }
+}
+
+
+// Component alignment
+//
+// Repurpose the pull utilities as their own navbar utilities to avoid specificity
+// issues with parents and chaining. Only do this when the navbar is uncollapsed
+// though so that navbar contents properly stack and align in mobile.
+//
+// Declared after the navbar components to ensure more specificity on the margins.
+
+@media (min-width: $grid-float-breakpoint) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ margin-right: -$navbar-padding-horizontal;
+
+ ~ .navbar-right {
+ margin-right: 0;
+ }
+ }
+}
+
+
+// Alternate navbars
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+ background-color: $navbar-default-bg;
+ border-color: $navbar-default-border;
+
+ .navbar-brand {
+ color: $navbar-default-brand-color;
+ &:hover,
+ &:focus {
+ color: $navbar-default-brand-hover-color;
+ background-color: $navbar-default-brand-hover-bg;
+ }
+ }
+
+ .navbar-text {
+ color: $navbar-default-color;
+ }
+
+ .navbar-nav {
+ > li > a {
+ color: $navbar-default-link-color;
+
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-hover-color;
+ background-color: $navbar-default-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-active-color;
+ background-color: $navbar-default-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-disabled-color;
+ background-color: $navbar-default-link-disabled-bg;
+ }
+ }
+ }
+
+ .navbar-toggle {
+ border-color: $navbar-default-toggle-border-color;
+ &:hover,
+ &:focus {
+ background-color: $navbar-default-toggle-hover-bg;
+ }
+ .icon-bar {
+ background-color: $navbar-default-toggle-icon-bar-bg;
+ }
+ }
+
+ .navbar-collapse,
+ .navbar-form {
+ border-color: $navbar-default-border;
+ }
+
+ // Dropdown menu items
+ .navbar-nav {
+ // Remove background color from open dropdown
+ > .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: $navbar-default-link-active-bg;
+ color: $navbar-default-link-active-color;
+ }
+ }
+
+ @media (max-width: $grid-float-breakpoint-max) {
+ // Dropdowns get custom display when collapsed
+ .open .dropdown-menu {
+ > li > a {
+ color: $navbar-default-link-color;
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-hover-color;
+ background-color: $navbar-default-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-active-color;
+ background-color: $navbar-default-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-disabled-color;
+ background-color: $navbar-default-link-disabled-bg;
+ }
+ }
+ }
+ }
+ }
+
+
+ // Links in navbars
+ //
+ // Add a class to ensure links outside the navbar nav are colored correctly.
+
+ .navbar-link {
+ color: $navbar-default-link-color;
+ &:hover {
+ color: $navbar-default-link-hover-color;
+ }
+ }
+
+ .btn-link {
+ color: $navbar-default-link-color;
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: $navbar-default-link-disabled-color;
+ }
+ }
+ }
+}
+
+// Inverse navbar
+
+.navbar-inverse {
+ background-color: $navbar-inverse-bg;
+ border-color: $navbar-inverse-border;
+
+ .navbar-brand {
+ color: $navbar-inverse-brand-color;
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-brand-hover-color;
+ background-color: $navbar-inverse-brand-hover-bg;
+ }
+ }
+
+ .navbar-text {
+ color: $navbar-inverse-color;
+ }
+
+ .navbar-nav {
+ > li > a {
+ color: $navbar-inverse-link-color;
+
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-hover-color;
+ background-color: $navbar-inverse-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-active-color;
+ background-color: $navbar-inverse-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-disabled-color;
+ background-color: $navbar-inverse-link-disabled-bg;
+ }
+ }
+ }
+
+ // Darken the responsive nav toggle
+ .navbar-toggle {
+ border-color: $navbar-inverse-toggle-border-color;
+ &:hover,
+ &:focus {
+ background-color: $navbar-inverse-toggle-hover-bg;
+ }
+ .icon-bar {
+ background-color: $navbar-inverse-toggle-icon-bar-bg;
+ }
+ }
+
+ .navbar-collapse,
+ .navbar-form {
+ border-color: darken($navbar-inverse-bg, 7%);
+ }
+
+ // Dropdowns
+ .navbar-nav {
+ > .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: $navbar-inverse-link-active-bg;
+ color: $navbar-inverse-link-active-color;
+ }
+ }
+
+ @media (max-width: $grid-float-breakpoint-max) {
+ // Dropdowns get custom display
+ .open .dropdown-menu {
+ > .dropdown-header {
+ border-color: $navbar-inverse-border;
+ }
+ .divider {
+ background-color: $navbar-inverse-border;
+ }
+ > li > a {
+ color: $navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-hover-color;
+ background-color: $navbar-inverse-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-active-color;
+ background-color: $navbar-inverse-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-disabled-color;
+ background-color: $navbar-inverse-link-disabled-bg;
+ }
+ }
+ }
+ }
+ }
+
+ .navbar-link {
+ color: $navbar-inverse-link-color;
+ &:hover {
+ color: $navbar-inverse-link-hover-color;
+ }
+ }
+
+ .btn-link {
+ color: $navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: $navbar-inverse-link-disabled-color;
+ }
+ }
+ }
+}
diff --git a/scss/bootstrap/_navs.scss b/scss/bootstrap/_navs.scss
new file mode 100644
index 00000000..ce0b9178
--- /dev/null
+++ b/scss/bootstrap/_navs.scss
@@ -0,0 +1,244 @@
+//
+// Navs
+// --------------------------------------------------
+
+
+// Base class
+// --------------------------------------------------
+
+.nav {
+ margin-bottom: 0;
+ padding-left: 0; // Override default ul/ol
+ list-style: none;
+ @include clearfix;
+
+ > li {
+ position: relative;
+ display: block;
+
+ > a {
+ position: relative;
+ display: block;
+ padding: $nav-link-padding;
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: $nav-link-hover-bg;
+ }
+ }
+
+ // Disabled state sets text to gray and nukes hover/tab effects
+ &.disabled > a {
+ color: $nav-disabled-link-color;
+
+ &:hover,
+ &:focus {
+ color: $nav-disabled-link-hover-color;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: $cursor-disabled;
+ }
+ }
+ }
+
+ // Open dropdowns
+ .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: $nav-link-hover-bg;
+ border-color: $link-color;
+ }
+ }
+
+ // Nav dividers (deprecated with v3.0.1)
+ //
+ // This should have been removed in v3 with the dropping of `.nav-list`, but
+ // we missed it. We don't currently support this anywhere, but in the interest
+ // of maintaining backward compatibility in case you use it, it's deprecated.
+ .nav-divider {
+ @include nav-divider;
+ }
+
+ // Prevent IE8 from misplacing imgs
+ //
+ // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
+ > li > a > img {
+ max-width: none;
+ }
+}
+
+
+// Tabs
+// -------------------------
+
+// Give the tabs something to sit on
+.nav-tabs {
+ border-bottom: 1px solid $nav-tabs-border-color;
+ > li {
+ float: left;
+ // Make the list-items overlay the bottom border
+ margin-bottom: -1px;
+
+ // Actual tabs (as links)
+ > a {
+ margin-right: 2px;
+ line-height: $line-height-base;
+ border: 1px solid transparent;
+ border-radius: $border-radius-base $border-radius-base 0 0;
+ &:hover {
+ border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
+ }
+ }
+
+ // Active state, and its :hover to override normal :hover
+ &.active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $nav-tabs-active-link-hover-color;
+ background-color: $nav-tabs-active-link-hover-bg;
+ border: 1px solid $nav-tabs-active-link-hover-border-color;
+ border-bottom-color: transparent;
+ cursor: default;
+ }
+ }
+ }
+ // pulling this in mainly for less shorthand
+ &.nav-justified {
+ @extend .nav-justified;
+ @extend .nav-tabs-justified;
+ }
+}
+
+
+// Pills
+// -------------------------
+.nav-pills {
+ > li {
+ float: left;
+
+ // Links rendered as pills
+ > a {
+ border-radius: $nav-pills-border-radius;
+ }
+ + li {
+ margin-left: 2px;
+ }
+
+ // Active state
+ &.active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: $nav-pills-active-link-hover-color;
+ background-color: $nav-pills-active-link-hover-bg;
+ }
+ }
+ }
+}
+
+
+// Stacked pills
+.nav-stacked {
+ > li {
+ float: none;
+ + li {
+ margin-top: 2px;
+ margin-left: 0; // no need for this gap between nav items
+ }
+ }
+}
+
+
+// Nav variations
+// --------------------------------------------------
+
+// Justified nav links
+// -------------------------
+
+.nav-justified {
+ width: 100%;
+
+ > li {
+ float: none;
+ > a {
+ text-align: center;
+ margin-bottom: 5px;
+ }
+ }
+
+ > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+ }
+
+ @media (min-width: $screen-sm-min) {
+ > li {
+ display: table-cell;
+ width: 1%;
+ > a {
+ margin-bottom: 0;
+ }
+ }
+ }
+}
+
+// Move borders to anchors instead of bottom of list
+//
+// Mixin for adding on top the shared `.nav-justified` styles for our tabs
+.nav-tabs-justified {
+ border-bottom: 0;
+
+ > li > a {
+ // Override margin from .nav-tabs
+ margin-right: 0;
+ border-radius: $border-radius-base;
+ }
+
+ > .active > a,
+ > .active > a:hover,
+ > .active > a:focus {
+ border: 1px solid $nav-tabs-justified-link-border-color;
+ }
+
+ @media (min-width: $screen-sm-min) {
+ > li > a {
+ border-bottom: 1px solid $nav-tabs-justified-link-border-color;
+ border-radius: $border-radius-base $border-radius-base 0 0;
+ }
+ > .active > a,
+ > .active > a:hover,
+ > .active > a:focus {
+ border-bottom-color: $nav-tabs-justified-active-link-border-color;
+ }
+ }
+}
+
+
+// Tabbable tabs
+// -------------------------
+
+// Hide tabbable panes to start, show them when `.active`
+.tab-content {
+ > .tab-pane {
+ display: none;
+ visibility: hidden;
+ }
+ > .active {
+ display: block;
+ visibility: visible;
+ }
+}
+
+
+// Dropdowns
+// -------------------------
+
+// Specific dropdowns
+.nav-tabs .dropdown-menu {
+ // make dropdown border overlap tab border
+ margin-top: -1px;
+ // Remove the top rounded corners here since there is a hard edge above the menu
+ @include border-top-radius(0);
+}
diff --git a/scss/bootstrap/_normalize.scss b/scss/bootstrap/_normalize.scss
new file mode 100644
index 00000000..62a085a4
--- /dev/null
+++ b/scss/bootstrap/_normalize.scss
@@ -0,0 +1,427 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+//
+// 1. Set default font family to sans-serif.
+// 2. Prevent iOS text size adjust after orientation change, without disabling
+// user zoom.
+//
+
+html {
+ font-family: sans-serif; // 1
+ -ms-text-size-adjust: 100%; // 2
+ -webkit-text-size-adjust: 100%; // 2
+}
+
+//
+// Remove default margin.
+//
+
+body {
+ margin: 0;
+}
+
+// HTML5 display definitions
+// ==========================================================================
+
+//
+// Correct `block` display not defined for any HTML5 element in IE 8/9.
+// Correct `block` display not defined for `details` or `summary` in IE 10/11
+// and Firefox.
+// Correct `block` display not defined for `main` in IE 11.
+//
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+//
+// 1. Correct `inline-block` display not defined in IE 8/9.
+// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+//
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block; // 1
+ vertical-align: baseline; // 2
+}
+
+//
+// Prevent modern browsers from displaying `audio` without controls.
+// Remove excess height in iOS 5 devices.
+//
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+//
+// Address `[hidden]` styling not present in IE 8/9/10.
+// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+//
+
+[hidden],
+template {
+ display: none;
+}
+
+// Links
+// ==========================================================================
+
+//
+// Remove the gray background color from active links in IE 10.
+//
+
+a {
+ background-color: transparent;
+}
+
+//
+// Improve readability when focused and also mouse hovered in all browsers.
+//
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+// Text-level semantics
+// ==========================================================================
+
+//
+// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+//
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+//
+// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+//
+
+b,
+strong {
+ font-weight: bold;
+}
+
+//
+// Address styling not present in Safari and Chrome.
+//
+
+dfn {
+ font-style: italic;
+}
+
+//
+// Address variable `h1` font-size and margin within `section` and `article`
+// contexts in Firefox 4+, Safari, and Chrome.
+//
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+//
+// Address styling not present in IE 8/9.
+//
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+//
+// Address inconsistent and variable font size in all browsers.
+//
+
+small {
+ font-size: 80%;
+}
+
+//
+// Prevent `sub` and `sup` affecting `line-height` in all browsers.
+//
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+// Embedded content
+// ==========================================================================
+
+//
+// Remove border when inside `a` element in IE 8/9/10.
+//
+
+img {
+ border: 0;
+}
+
+//
+// Correct overflow not hidden in IE 9/10/11.
+//
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+// Grouping content
+// ==========================================================================
+
+//
+// Address margin not present in IE 8/9 and Safari.
+//
+
+figure {
+ margin: 1em 40px;
+}
+
+//
+// Address differences between Firefox and other browsers.
+//
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+//
+// Contain overflow in all browsers.
+//
+
+pre {
+ overflow: auto;
+}
+
+//
+// Address odd `em`-unit font size rendering in all browsers.
+//
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+// Forms
+// ==========================================================================
+
+//
+// Known limitation: by default, Chrome and Safari on OS X allow very limited
+// styling of `select`, unless a `border` property is set.
+//
+
+//
+// 1. Correct color not being inherited.
+// Known issue: affects color of disabled elements.
+// 2. Correct font properties not being inherited.
+// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+//
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit; // 1
+ font: inherit; // 2
+ margin: 0; // 3
+}
+
+//
+// Address `overflow` set to `hidden` in IE 8/9/10/11.
+//
+
+button {
+ overflow: visible;
+}
+
+//
+// Address inconsistent `text-transform` inheritance for `button` and `select`.
+// All other form control elements do not inherit `text-transform` values.
+// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+// Correct `select` style inheritance in Firefox.
+//
+
+button,
+select {
+ text-transform: none;
+}
+
+//
+// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+// and `video` controls.
+// 2. Correct inability to style clickable `input` types in iOS.
+// 3. Improve usability and consistency of cursor style between image-type
+// `input` and others.
+//
+
+button,
+html input[type="button"], // 1
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; // 2
+ cursor: pointer; // 3
+}
+
+//
+// Re-set default cursor for disabled elements.
+//
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+//
+// Remove inner padding and border in Firefox 4+.
+//
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+//
+// Address Firefox 4+ setting `line-height` on `input` using `!important` in
+// the UA stylesheet.
+//
+
+input {
+ line-height: normal;
+}
+
+//
+// It's recommended that you don't attempt to style these elements.
+// Firefox's implementation doesn't respect box-sizing, padding, or width.
+//
+// 1. Address box sizing set to `content-box` in IE 8/9/10.
+// 2. Remove excess padding in IE 8/9/10.
+//
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; // 1
+ padding: 0; // 2
+}
+
+//
+// Fix the cursor style for Chrome's increment/decrement buttons. For certain
+// `font-size` values of the `input`, it causes the cursor style of the
+// decrement button to change from `default` to `text`.
+//
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+//
+// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+// 2. Address `box-sizing` set to `border-box` in Safari and Chrome
+// (include `-moz` to future-proof).
+//
+
+input[type="search"] {
+ -webkit-appearance: textfield; // 1
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; // 2
+ box-sizing: content-box;
+}
+
+//
+// Remove inner padding and search cancel button in Safari and Chrome on OS X.
+// Safari (but not Chrome) clips the cancel button when the search input has
+// padding (and `textfield` appearance).
+//
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+//
+// Define consistent border, margin, and padding.
+//
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+//
+// 1. Correct `color` not being inherited in IE 8/9/10/11.
+// 2. Remove padding so people aren't caught out if they zero out fieldsets.
+//
+
+legend {
+ border: 0; // 1
+ padding: 0; // 2
+}
+
+//
+// Remove default vertical scrollbar in IE 8/9/10/11.
+//
+
+textarea {
+ overflow: auto;
+}
+
+//
+// Don't inherit the `font-weight` (applied by a rule above).
+// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+//
+
+optgroup {
+ font-weight: bold;
+}
+
+// Tables
+// ==========================================================================
+
+//
+// Remove most spacing between table cells.
+//
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
diff --git a/scss/bootstrap/_pager.scss b/scss/bootstrap/_pager.scss
new file mode 100644
index 00000000..c2342174
--- /dev/null
+++ b/scss/bootstrap/_pager.scss
@@ -0,0 +1,54 @@
+//
+// Pager pagination
+// --------------------------------------------------
+
+
+.pager {
+ padding-left: 0;
+ margin: $line-height-computed 0;
+ list-style: none;
+ text-align: center;
+ @include clearfix;
+ li {
+ display: inline;
+ > a,
+ > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: $pager-bg;
+ border: 1px solid $pager-border;
+ border-radius: $pager-border-radius;
+ }
+
+ > a:hover,
+ > a:focus {
+ text-decoration: none;
+ background-color: $pager-hover-bg;
+ }
+ }
+
+ .next {
+ > a,
+ > span {
+ float: right;
+ }
+ }
+
+ .previous {
+ > a,
+ > span {
+ float: left;
+ }
+ }
+
+ .disabled {
+ > a,
+ > a:hover,
+ > a:focus,
+ > span {
+ color: $pager-disabled-color;
+ background-color: $pager-bg;
+ cursor: $cursor-disabled;
+ }
+ }
+}
diff --git a/scss/bootstrap/_pagination.scss b/scss/bootstrap/_pagination.scss
new file mode 100644
index 00000000..323ec727
--- /dev/null
+++ b/scss/bootstrap/_pagination.scss
@@ -0,0 +1,88 @@
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: $line-height-computed 0;
+ border-radius: $border-radius-base;
+
+ > li {
+ display: inline; // Remove list-style and block-level defaults
+ > a,
+ > span {
+ position: relative;
+ float: left; // Collapse white-space
+ padding: $padding-base-vertical $padding-base-horizontal;
+ line-height: $line-height-base;
+ text-decoration: none;
+ color: $pagination-color;
+ background-color: $pagination-bg;
+ border: 1px solid $pagination-border;
+ margin-left: -1px;
+ }
+ &:first-child {
+ > a,
+ > span {
+ margin-left: 0;
+ @include border-left-radius($border-radius-base);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ @include border-right-radius($border-radius-base);
+ }
+ }
+ }
+
+ > li > a,
+ > li > span {
+ &:hover,
+ &:focus {
+ color: $pagination-hover-color;
+ background-color: $pagination-hover-bg;
+ border-color: $pagination-hover-border;
+ }
+ }
+
+ > .active > a,
+ > .active > span {
+ &,
+ &:hover,
+ &:focus {
+ z-index: 2;
+ color: $pagination-active-color;
+ background-color: $pagination-active-bg;
+ border-color: $pagination-active-border;
+ cursor: default;
+ }
+ }
+
+ > .disabled {
+ > span,
+ > span:hover,
+ > span:focus,
+ > a,
+ > a:hover,
+ > a:focus {
+ color: $pagination-disabled-color;
+ background-color: $pagination-disabled-bg;
+ border-color: $pagination-disabled-border;
+ cursor: $cursor-disabled;
+ }
+ }
+}
+
+// Sizing
+// --------------------------------------------------
+
+// Large
+.pagination-lg {
+ @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large);
+}
+
+// Small
+.pagination-sm {
+ @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small);
+}
diff --git a/scss/bootstrap/_panels.scss b/scss/bootstrap/_panels.scss
new file mode 100644
index 00000000..84847b47
--- /dev/null
+++ b/scss/bootstrap/_panels.scss
@@ -0,0 +1,265 @@
+//
+// Panels
+// --------------------------------------------------
+
+
+// Base class
+.panel {
+ margin-bottom: $line-height-computed;
+ background-color: $panel-bg;
+ border: 1px solid transparent;
+ border-radius: $panel-border-radius;
+ @include box-shadow(0 1px 1px rgba(0,0,0,.05));
+}
+
+// Panel contents
+.panel-body {
+ padding: $panel-body-padding;
+ @include clearfix;
+}
+
+// Optional heading
+.panel-heading {
+ padding: $panel-heading-padding;
+ border-bottom: 1px solid transparent;
+ @include border-top-radius(($panel-border-radius - 1));
+
+ > .dropdown .dropdown-toggle {
+ color: inherit;
+ }
+}
+
+// Within heading, strip any `h*` tag of its default margins for spacing.
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: ceil(($font-size-base * 1.125));
+ color: inherit;
+
+ > a,
+ > small,
+ > .small,
+ > small > a,
+ > .small > a {
+ color: inherit;
+ }
+}
+
+// Optional footer (stays gray in every modifier class)
+.panel-footer {
+ padding: $panel-footer-padding;
+ background-color: $panel-footer-bg;
+ border-top: 1px solid $panel-inner-border;
+ @include border-bottom-radius(($panel-border-radius - 1));
+}
+
+
+// List groups in panels
+//
+// By default, space out list group content from panel headings to account for
+// any kind of custom content between the two.
+
+.panel {
+ > .list-group,
+ > .panel-collapse > .list-group {
+ margin-bottom: 0;
+
+ .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+ }
+
+ // Add border top radius for first one
+ &:first-child {
+ .list-group-item:first-child {
+ border-top: 0;
+ @include border-top-radius(($panel-border-radius - 1));
+ }
+ }
+ // Add border bottom radius for last one
+ &:last-child {
+ .list-group-item:last-child {
+ border-bottom: 0;
+ @include border-bottom-radius(($panel-border-radius - 1));
+ }
+ }
+ }
+}
+// Collapse space between when there's no additional content.
+.panel-heading + .list-group {
+ .list-group-item:first-child {
+ border-top-width: 0;
+ }
+}
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
+
+// Tables in panels
+//
+// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
+// watch it go full width.
+
+.panel {
+ > .table,
+ > .table-responsive > .table,
+ > .panel-collapse > .table {
+ margin-bottom: 0;
+
+ caption {
+ padding-left: $panel-body-padding;
+ padding-right: $panel-body-padding;
+ }
+ }
+ // Add border top radius for first one
+ > .table:first-child,
+ > .table-responsive:first-child > .table:first-child {
+ @include border-top-radius(($panel-border-radius - 1));
+
+ > thead:first-child,
+ > tbody:first-child {
+ > tr:first-child {
+ border-top-left-radius: ($panel-border-radius - 1);
+ border-top-right-radius: ($panel-border-radius - 1);
+
+ td:first-child,
+ th:first-child {
+ border-top-left-radius: ($panel-border-radius - 1);
+ }
+ td:last-child,
+ th:last-child {
+ border-top-right-radius: ($panel-border-radius - 1);
+ }
+ }
+ }
+ }
+ // Add border bottom radius for last one
+ > .table:last-child,
+ > .table-responsive:last-child > .table:last-child {
+ @include border-bottom-radius(($panel-border-radius - 1));
+
+ > tbody:last-child,
+ > tfoot:last-child {
+ > tr:last-child {
+ border-bottom-left-radius: ($panel-border-radius - 1);
+ border-bottom-right-radius: ($panel-border-radius - 1);
+
+ td:first-child,
+ th:first-child {
+ border-bottom-left-radius: ($panel-border-radius - 1);
+ }
+ td:last-child,
+ th:last-child {
+ border-bottom-right-radius: ($panel-border-radius - 1);
+ }
+ }
+ }
+ }
+ > .panel-body + .table,
+ > .panel-body + .table-responsive,
+ > .table + .panel-body,
+ > .table-responsive + .panel-body {
+ border-top: 1px solid $table-border-color;
+ }
+ > .table > tbody:first-child > tr:first-child th,
+ > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+ }
+ > .table-bordered,
+ > .table-responsive > .table-bordered {
+ border: 0;
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th:first-child,
+ > td:first-child {
+ border-left: 0;
+ }
+ > th:last-child,
+ > td:last-child {
+ border-right: 0;
+ }
+ }
+ }
+ > thead,
+ > tbody {
+ > tr:first-child {
+ > td,
+ > th {
+ border-bottom: 0;
+ }
+ }
+ }
+ > tbody,
+ > tfoot {
+ > tr:last-child {
+ > td,
+ > th {
+ border-bottom: 0;
+ }
+ }
+ }
+ }
+ > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+ }
+}
+
+
+// Collapsable panels (aka, accordion)
+//
+// Wrap a series of panels in `.panel-group` to turn them into an accordion with
+// the help of our collapse JavaScript plugin.
+
+.panel-group {
+ margin-bottom: $line-height-computed;
+
+ // Tighten up margin so it's only between panels
+ .panel {
+ margin-bottom: 0;
+ border-radius: $panel-border-radius;
+
+ + .panel {
+ margin-top: 5px;
+ }
+ }
+
+ .panel-heading {
+ border-bottom: 0;
+
+ + .panel-collapse > .panel-body,
+ + .panel-collapse > .list-group {
+ border-top: 1px solid $panel-inner-border;
+ }
+ }
+
+ .panel-footer {
+ border-top: 0;
+ + .panel-collapse .panel-body {
+ border-bottom: 1px solid $panel-inner-border;
+ }
+ }
+}
+
+
+// Contextual variations
+.panel-default {
+ @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
+}
+.panel-primary {
+ @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
+}
+.panel-success {
+ @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
+}
+.panel-info {
+ @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
+}
+.panel-warning {
+ @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
+}
+.panel-danger {
+ @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
+}
diff --git a/scss/bootstrap/_popovers.scss b/scss/bootstrap/_popovers.scss
new file mode 100644
index 00000000..699c7b8d
--- /dev/null
+++ b/scss/bootstrap/_popovers.scss
@@ -0,0 +1,135 @@
+//
+// Popovers
+// --------------------------------------------------
+
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: $zindex-popover;
+ display: none;
+ max-width: $popover-max-width;
+ padding: 1px;
+ // Reset font and text properties given new insertion method
+ font-family: $font-family-base;
+ font-size: $font-size-base;
+ font-weight: normal;
+ line-height: $line-height-base;
+ text-align: left;
+ background-color: $popover-bg;
+ background-clip: padding-box;
+ border: 1px solid $popover-fallback-border-color;
+ border: 1px solid $popover-border-color;
+ border-radius: $border-radius-large;
+ @include box-shadow(0 5px 10px rgba(0,0,0,.2));
+
+ // Overrides for proper insertion
+ white-space: normal;
+
+ // Offset the popover to account for the popover arrow
+ &.top { margin-top: -$popover-arrow-width; }
+ &.right { margin-left: $popover-arrow-width; }
+ &.bottom { margin-top: $popover-arrow-width; }
+ &.left { margin-left: -$popover-arrow-width; }
+}
+
+.popover-title {
+ margin: 0; // reset heading margin
+ padding: 8px 14px;
+ font-size: $font-size-base;
+ background-color: $popover-title-bg;
+ border-bottom: 1px solid darken($popover-title-bg, 5%);
+ border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+// Arrows
+//
+// .arrow is outer, .arrow:after is inner
+
+.popover > .arrow {
+ &,
+ &:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+}
+.popover > .arrow {
+ border-width: $popover-arrow-outer-width;
+}
+.popover > .arrow:after {
+ border-width: $popover-arrow-width;
+ content: "";
+}
+
+.popover {
+ &.top > .arrow {
+ left: 50%;
+ margin-left: -$popover-arrow-outer-width;
+ border-bottom-width: 0;
+ border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-top-color: $popover-arrow-outer-color;
+ bottom: -$popover-arrow-outer-width;
+ &:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -$popover-arrow-width;
+ border-bottom-width: 0;
+ border-top-color: $popover-arrow-color;
+ }
+ }
+ &.right > .arrow {
+ top: 50%;
+ left: -$popover-arrow-outer-width;
+ margin-top: -$popover-arrow-outer-width;
+ border-left-width: 0;
+ border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-right-color: $popover-arrow-outer-color;
+ &:after {
+ content: " ";
+ left: 1px;
+ bottom: -$popover-arrow-width;
+ border-left-width: 0;
+ border-right-color: $popover-arrow-color;
+ }
+ }
+ &.bottom > .arrow {
+ left: 50%;
+ margin-left: -$popover-arrow-outer-width;
+ border-top-width: 0;
+ border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-bottom-color: $popover-arrow-outer-color;
+ top: -$popover-arrow-outer-width;
+ &:after {
+ content: " ";
+ top: 1px;
+ margin-left: -$popover-arrow-width;
+ border-top-width: 0;
+ border-bottom-color: $popover-arrow-color;
+ }
+ }
+
+ &.left > .arrow {
+ top: 50%;
+ right: -$popover-arrow-outer-width;
+ margin-top: -$popover-arrow-outer-width;
+ border-right-width: 0;
+ border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+ border-left-color: $popover-arrow-outer-color;
+ &:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: $popover-arrow-color;
+ bottom: -$popover-arrow-width;
+ }
+ }
+}
diff --git a/scss/bootstrap/_print.scss b/scss/bootstrap/_print.scss
new file mode 100644
index 00000000..94ca58f1
--- /dev/null
+++ b/scss/bootstrap/_print.scss
@@ -0,0 +1,107 @@
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+
+// ==========================================================================
+// Print styles.
+// Inlined to avoid the additional HTTP request: h5bp.com/r
+// ==========================================================================
+
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important; // Black prints faster: h5bp.com/s
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ // Don't show links that are fragment identifiers,
+ // or use the `javascript:` pseudo protocol
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; // h5bp.com/t
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+
+ // Bootstrap specific changes start
+ //
+ // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
+ // Once fixed, we can just straight up remove this.
+ select {
+ background: #fff !important;
+ }
+
+ // Bootstrap components
+ .navbar {
+ display: none;
+ }
+ .btn,
+ .dropup > .btn {
+ > .caret {
+ border-top-color: #000 !important;
+ }
+ }
+ .label {
+ border: 1px solid #000;
+ }
+
+ .table {
+ border-collapse: collapse !important;
+
+ td,
+ th {
+ background-color: #fff !important;
+ }
+ }
+ .table-bordered {
+ th,
+ td {
+ border: 1px solid #ddd !important;
+ }
+ }
+
+ // Bootstrap specific changes end
+}
diff --git a/scss/bootstrap/_progress-bars.scss b/scss/bootstrap/_progress-bars.scss
new file mode 100644
index 00000000..343df632
--- /dev/null
+++ b/scss/bootstrap/_progress-bars.scss
@@ -0,0 +1,87 @@
+//
+// Progress bars
+// --------------------------------------------------
+
+
+// Bar animations
+// -------------------------
+
+// WebKit
+@-webkit-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Spec and IE10+
+@keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+
+// Bar itself
+// -------------------------
+
+// Outer container
+.progress {
+ overflow: hidden;
+ height: $line-height-computed;
+ margin-bottom: $line-height-computed;
+ background-color: $progress-bg;
+ border-radius: $progress-border-radius;
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+}
+
+// Bar of progress
+.progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: $font-size-small;
+ line-height: $line-height-computed;
+ color: $progress-bar-color;
+ text-align: center;
+ background-color: $progress-bar-bg;
+ @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ @include transition(width .6s ease);
+}
+
+// Striped bars
+//
+// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar-striped` class, which you just add to an existing
+// `.progress-bar`.
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ @include gradient-striped;
+ background-size: 40px 40px;
+}
+
+// Call animation for the active one
+//
+// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar.active` approach.
+.progress.active .progress-bar,
+.progress-bar.active {
+ @include animation(progress-bar-stripes 2s linear infinite);
+}
+
+
+// Variations
+// -------------------------
+
+.progress-bar-success {
+ @include progress-bar-variant($progress-bar-success-bg);
+}
+
+.progress-bar-info {
+ @include progress-bar-variant($progress-bar-info-bg);
+}
+
+.progress-bar-warning {
+ @include progress-bar-variant($progress-bar-warning-bg);
+}
+
+.progress-bar-danger {
+ @include progress-bar-variant($progress-bar-danger-bg);
+}
diff --git a/scss/bootstrap/_responsive-embed.scss b/scss/bootstrap/_responsive-embed.scss
new file mode 100644
index 00000000..c1fa8f84
--- /dev/null
+++ b/scss/bootstrap/_responsive-embed.scss
@@ -0,0 +1,35 @@
+// Embeds responsive
+//
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+
+ .embed-responsive-item,
+ iframe,
+ embed,
+ object,
+ video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0;
+ }
+
+ // Modifier class for 16:9 aspect ratio
+ &.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+ }
+
+ // Modifier class for 4:3 aspect ratio
+ &.embed-responsive-4by3 {
+ padding-bottom: 75%;
+ }
+}
diff --git a/scss/bootstrap/_responsive-utilities.scss b/scss/bootstrap/_responsive-utilities.scss
new file mode 100644
index 00000000..8d02aaa3
--- /dev/null
+++ b/scss/bootstrap/_responsive-utilities.scss
@@ -0,0 +1,177 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+
+// IE10 in Windows (Phone) 8
+//
+// Support for responsive views via media queries is kind of borked in IE10, for
+// Surface/desktop in split view and for Windows Phone 8. This particular fix
+// must be accompanied by a snippet of JavaScript to sniff the user agent and
+// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
+// our Getting Started page for more information on this bug.
+//
+// For more information, see the following:
+//
+// Issue: https://github.com/twbs/bootstrap/issues/10497
+// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
+// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
+
+@-ms-viewport {
+ width: device-width;
+}
+
+
+// Visibility utilities
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
+
+@include responsive-invisibility('.visible-xs');
+@include responsive-invisibility('.visible-sm');
+@include responsive-invisibility('.visible-md');
+@include responsive-invisibility('.visible-lg');
+
+.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: $screen-xs-max) {
+ @include responsive-visibility('.visible-xs');
+}
+.visible-xs-block {
+ @media (max-width: $screen-xs-max) {
+ display: block !important;
+ }
+}
+.visible-xs-inline {
+ @media (max-width: $screen-xs-max) {
+ display: inline !important;
+ }
+}
+.visible-xs-inline-block {
+ @media (max-width: $screen-xs-max) {
+ display: inline-block !important;
+ }
+}
+
+@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ @include responsive-visibility('.visible-sm');
+}
+.visible-sm-block {
+ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ display: block !important;
+ }
+}
+.visible-sm-inline {
+ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ display: inline !important;
+ }
+}
+.visible-sm-inline-block {
+ @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ display: inline-block !important;
+ }
+}
+
+@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ @include responsive-visibility('.visible-md');
+}
+.visible-md-block {
+ @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ display: block !important;
+ }
+}
+.visible-md-inline {
+ @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ display: inline !important;
+ }
+}
+.visible-md-inline-block {
+ @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ display: inline-block !important;
+ }
+}
+
+@media (min-width: $screen-lg-min) {
+ @include responsive-visibility('.visible-lg');
+}
+.visible-lg-block {
+ @media (min-width: $screen-lg-min) {
+ display: block !important;
+ }
+}
+.visible-lg-inline {
+ @media (min-width: $screen-lg-min) {
+ display: inline !important;
+ }
+}
+.visible-lg-inline-block {
+ @media (min-width: $screen-lg-min) {
+ display: inline-block !important;
+ }
+}
+
+@media (max-width: $screen-xs-max) {
+ @include responsive-invisibility('.hidden-xs');
+}
+
+@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+ @include responsive-invisibility('.hidden-sm');
+}
+
+@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+ @include responsive-invisibility('.hidden-md');
+}
+
+@media (min-width: $screen-lg-min) {
+ @include responsive-invisibility('.hidden-lg');
+}
+
+
+// Print utilities
+//
+// Media queries are placed on the inside to be mixin-friendly.
+
+// Note: Deprecated .visible-print as of v3.2.0
+
+@include responsive-invisibility('.visible-print');
+
+@media print {
+ @include responsive-visibility('.visible-print');
+}
+.visible-print-block {
+ display: none !important;
+
+ @media print {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+
+ @media print {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+
+ @media print {
+ display: inline-block !important;
+ }
+}
+
+@media print {
+ @include responsive-invisibility('.hidden-print');
+}
diff --git a/scss/bootstrap/_scaffolding.scss b/scss/bootstrap/_scaffolding.scss
new file mode 100644
index 00000000..626e5eba
--- /dev/null
+++ b/scss/bootstrap/_scaffolding.scss
@@ -0,0 +1,150 @@
+//
+// Scaffolding
+// --------------------------------------------------
+
+
+// Reset the box-sizing
+//
+// Heads up! This reset may cause conflicts with some third-party widgets.
+// For recommendations on resolving such conflicts, see
+// http://getbootstrap.com/getting-started/#third-box-sizing
+* {
+ @include box-sizing(border-box);
+}
+*:before,
+*:after {
+ @include box-sizing(border-box);
+}
+
+
+// Body reset
+
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+body {
+ font-family: $font-family-base;
+ font-size: $font-size-base;
+ line-height: $line-height-base;
+ color: $text-color;
+ background-color: $body-bg;
+}
+
+// Reset fonts for relevant elements
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+
+// Links
+
+a {
+ color: $link-color;
+ text-decoration: none;
+
+ &:hover,
+ &:focus {
+ color: $link-hover-color;
+ text-decoration: $link-hover-decoration;
+ }
+
+ &:focus {
+ @include tab-focus;
+ }
+}
+
+
+// Figures
+//
+// We reset this here because previously Normalize had no `figure` margins. This
+// ensures we don't break anyone's use of the element.
+
+figure {
+ margin: 0;
+}
+
+
+// Images
+
+img {
+ vertical-align: middle;
+}
+
+// Responsive images (ensure images don't scale beyond their parents)
+.img-responsive {
+ @include img-responsive;
+}
+
+// Rounded corners
+.img-rounded {
+ border-radius: $border-radius-large;
+}
+
+// Image thumbnails
+//
+// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
+.img-thumbnail {
+ padding: $thumbnail-padding;
+ line-height: $line-height-base;
+ background-color: $thumbnail-bg;
+ border: 1px solid $thumbnail-border;
+ border-radius: $thumbnail-border-radius;
+ @include transition(all .2s ease-in-out);
+
+ // Keep them at most 100% wide
+ @include img-responsive(inline-block);
+}
+
+// Perfect circle
+.img-circle {
+ border-radius: 50%; // set radius in percents
+}
+
+
+// Horizontal rules
+
+hr {
+ margin-top: $line-height-computed;
+ margin-bottom: $line-height-computed;
+ border: 0;
+ border-top: 1px solid $hr-border;
+}
+
+
+// Only display content to screen readers
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+// Credit: HTML5 Boilerplate
+
+.sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
diff --git a/scss/bootstrap/_tables.scss b/scss/bootstrap/_tables.scss
new file mode 100644
index 00000000..affcc58c
--- /dev/null
+++ b/scss/bootstrap/_tables.scss
@@ -0,0 +1,234 @@
+//
+// Tables
+// --------------------------------------------------
+
+
+table {
+ background-color: $table-bg;
+}
+caption {
+ padding-top: $table-cell-padding;
+ padding-bottom: $table-cell-padding;
+ color: $text-muted;
+ text-align: left;
+}
+th {
+ text-align: left;
+}
+
+
+// Baseline styles
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: $line-height-computed;
+ // Cells
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ padding: $table-cell-padding;
+ line-height: $line-height-base;
+ vertical-align: top;
+ border-top: 1px solid $table-border-color;
+ }
+ }
+ }
+ // Bottom align for column headings
+ > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid $table-border-color;
+ }
+ // Remove top border from thead by default
+ > caption + thead,
+ > colgroup + thead,
+ > thead:first-child {
+ > tr:first-child {
+ > th,
+ > td {
+ border-top: 0;
+ }
+ }
+ }
+ // Account for multiple tbody instances
+ > tbody + tbody {
+ border-top: 2px solid $table-border-color;
+ }
+
+ // Nesting
+ .table {
+ background-color: $body-bg;
+ }
+}
+
+
+// Condensed table w/ half padding
+
+.table-condensed {
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ padding: $table-condensed-cell-padding;
+ }
+ }
+ }
+}
+
+
+// Bordered version
+//
+// Add borders all around the table and between all the columns.
+
+.table-bordered {
+ border: 1px solid $table-border-color;
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ border: 1px solid $table-border-color;
+ }
+ }
+ }
+ > thead > tr {
+ > th,
+ > td {
+ border-bottom-width: 2px;
+ }
+ }
+}
+
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+.table-striped {
+ > tbody > tr:nth-of-type(odd) {
+ background-color: $table-bg-accent;
+ }
+}
+
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+ > tbody > tr:hover {
+ background-color: $table-bg-hover;
+ }
+}
+
+
+// Table cell sizing
+//
+// Reset default table behavior
+
+table col[class*="col-"] {
+ position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
+ float: none;
+ display: table-column;
+}
+table {
+ td,
+ th {
+ &[class*="col-"] {
+ position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
+ float: none;
+ display: table-cell;
+ }
+ }
+}
+
+
+// Table backgrounds
+//
+// Exact selectors below required to override `.table-striped` and prevent
+// inheritance to nested tables.
+
+// Generate the contextual variants
+@include table-row-variant('active', $table-bg-active);
+@include table-row-variant('success', $state-success-bg);
+@include table-row-variant('info', $state-info-bg);
+@include table-row-variant('warning', $state-warning-bg);
+@include table-row-variant('danger', $state-danger-bg);
+
+
+// Responsive tables
+//
+// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
+// by enabling horizontal scrolling. Only applies <768px. Everything above that
+// will display normally.
+
+.table-responsive {
+ overflow-x: auto;
+ min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
+
+ @media screen and (max-width: $screen-xs-max) {
+ width: 100%;
+ margin-bottom: ($line-height-computed * 0.75);
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid $table-border-color;
+
+ // Tighten up spacing
+ > .table {
+ margin-bottom: 0;
+
+ // Ensure the content doesn't wrap
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ white-space: nowrap;
+ }
+ }
+ }
+ }
+
+ // Special overrides for the bordered tables
+ > .table-bordered {
+ border: 0;
+
+ // Nuke the appropriate borders so that the parent can handle them
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th:first-child,
+ > td:first-child {
+ border-left: 0;
+ }
+ > th:last-child,
+ > td:last-child {
+ border-right: 0;
+ }
+ }
+ }
+
+ // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
+ // chances are there will be only one `tr` in a `thead` and that would
+ // remove the border altogether.
+ > tbody,
+ > tfoot {
+ > tr:last-child {
+ > th,
+ > td {
+ border-bottom: 0;
+ }
+ }
+ }
+
+ }
+ }
+}
diff --git a/scss/bootstrap/_theme.scss b/scss/bootstrap/_theme.scss
new file mode 100644
index 00000000..ed106a4f
--- /dev/null
+++ b/scss/bootstrap/_theme.scss
@@ -0,0 +1,273 @@
+
+//
+// Load core variables and mixins
+// --------------------------------------------------
+
+@import "variables";
+@import "mixins";
+
+
+//
+// Buttons
+// --------------------------------------------------
+
+// Common styles
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
+ @include box-shadow($shadow);
+
+ // Reset the shadow
+ &:active,
+ &.active {
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+
+ .badge {
+ text-shadow: none;
+ }
+}
+
+// Mixin for generating new styles
+@mixin btn-styles($btn-color: #555) {
+ @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
+ @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
+ background-repeat: repeat-x;
+ border-color: darken($btn-color, 14%);
+
+ &:hover,
+ &:focus {
+ background-color: darken($btn-color, 12%);
+ background-position: 0 -15px;
+ }
+
+ &:active,
+ &.active {
+ background-color: darken($btn-color, 12%);
+ border-color: darken($btn-color, 14%);
+ }
+
+ &.disabled,
+ &:disabled,
+ &[disabled] {
+ background-color: darken($btn-color, 12%);
+ background-image: none;
+ }
+}
+
+// Common styles
+.btn {
+ // Remove the gradient for the pressed/active state
+ &:active,
+ &.active {
+ background-image: none;
+ }
+}
+
+// Apply the mixin to the buttons
+.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
+.btn-primary { @include btn-styles($btn-primary-bg); }
+.btn-success { @include btn-styles($btn-success-bg); }
+.btn-info { @include btn-styles($btn-info-bg); }
+.btn-warning { @include btn-styles($btn-warning-bg); }
+.btn-danger { @include btn-styles($btn-danger-bg); }
+
+
+//
+// Images
+// --------------------------------------------------
+
+.thumbnail,
+.img-thumbnail {
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+
+
+//
+// Dropdowns
+// --------------------------------------------------
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
+ background-color: darken($dropdown-link-hover-bg, 5%);
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
+ background-color: darken($dropdown-link-active-bg, 5%);
+}
+
+
+//
+// Navbar
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+ @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
+ @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
+ border-radius: $navbar-border-radius;
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
+ @include box-shadow($shadow);
+
+ .navbar-nav > .open > a,
+ .navbar-nav > .active > a {
+ @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));
+ @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
+ }
+}
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255,255,255,.25);
+}
+
+// Inverted navbar
+.navbar-inverse {
+ @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
+ @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
+
+ .navbar-nav > .open > a,
+ .navbar-nav > .active > a {
+ @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));
+ @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
+ }
+
+ .navbar-brand,
+ .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+}
+
+// Undo rounded corners in static and fixed navbars
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+
+// Fix active state of dropdown items in collapsed mode
+@media (max-width: $grid-float-breakpoint-max) {
+ .navbar .navbar-nav .open .dropdown-menu > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: #fff;
+ @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
+ }
+ }
+}
+
+
+//
+// Alerts
+// --------------------------------------------------
+
+// Common styles
+.alert {
+ text-shadow: 0 1px 0 rgba(255,255,255,.2);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
+ @include box-shadow($shadow);
+}
+
+// Mixin for generating new styles
+@mixin alert-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
+ border-color: darken($color, 15%);
+}
+
+// Apply the mixin to the alerts
+.alert-success { @include alert-styles($alert-success-bg); }
+.alert-info { @include alert-styles($alert-info-bg); }
+.alert-warning { @include alert-styles($alert-warning-bg); }
+.alert-danger { @include alert-styles($alert-danger-bg); }
+
+
+//
+// Progress bars
+// --------------------------------------------------
+
+// Give the progress background some depth
+.progress {
+ @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
+}
+
+// Mixin for generating new styles
+@mixin progress-bar-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
+}
+
+// Apply the mixin to the progress bars
+.progress-bar { @include progress-bar-styles($progress-bar-bg); }
+.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
+.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
+.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
+.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
+
+// Reset the striped class because our mixins don't do multiple gradients and
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
+.progress-bar-striped {
+ @include gradient-striped;
+}
+
+
+//
+// List groups
+// --------------------------------------------------
+
+.list-group {
+ border-radius: $border-radius-base;
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
+ @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
+ border-color: darken($list-group-active-border, 7.5%);
+
+ .badge {
+ text-shadow: none;
+ }
+}
+
+
+//
+// Panels
+// --------------------------------------------------
+
+// Common styles
+.panel {
+ @include box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+
+// Mixin for generating new styles
+@mixin panel-heading-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
+}
+
+// Apply the mixin to the panel headings only
+.panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
+.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
+.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
+.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
+.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
+.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
+
+
+//
+// Wells
+// --------------------------------------------------
+
+.well {
+ @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
+ border-color: darken($well-bg, 10%);
+ $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
+ @include box-shadow($shadow);
+}
diff --git a/scss/bootstrap/_thumbnails.scss b/scss/bootstrap/_thumbnails.scss
new file mode 100644
index 00000000..da0e1e76
--- /dev/null
+++ b/scss/bootstrap/_thumbnails.scss
@@ -0,0 +1,38 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Mixin and adjust the regular image class
+.thumbnail {
+ display: block;
+ padding: $thumbnail-padding;
+ margin-bottom: $line-height-computed;
+ line-height: $line-height-base;
+ background-color: $thumbnail-bg;
+ border: 1px solid $thumbnail-border;
+ border-radius: $thumbnail-border-radius;
+ @include transition(border .2s ease-in-out);
+
+ > img,
+ a > img {
+ @include img-responsive;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
+
+ // Image captions
+ .caption {
+ padding: $thumbnail-caption-padding;
+ color: $thumbnail-caption-color;
+ }
+}
+
+// Add a hover state for linked versions only
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: $link-color;
+}
diff --git a/scss/bootstrap/_tooltip.scss b/scss/bootstrap/_tooltip.scss
new file mode 100644
index 00000000..6004f598
--- /dev/null
+++ b/scss/bootstrap/_tooltip.scss
@@ -0,0 +1,103 @@
+//
+// Tooltips
+// --------------------------------------------------
+
+
+// Base class
+.tooltip {
+ position: absolute;
+ z-index: $zindex-tooltip;
+ display: block;
+ visibility: visible;
+ // Reset font and text properties given new insertion method
+ font-family: $font-family-base;
+ font-size: $font-size-small;
+ font-weight: normal;
+ line-height: 1.4;
+ @include opacity(0);
+
+ &.in { @include opacity($tooltip-opacity); }
+ &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; }
+ &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; }
+ &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; }
+ &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: $tooltip-max-width;
+ padding: 3px 8px;
+ color: $tooltip-color;
+ text-align: center;
+ text-decoration: none;
+ background-color: $tooltip-bg;
+ border-radius: $border-radius-base;
+}
+
+// Arrows
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
+.tooltip {
+ &.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ &.top-left .tooltip-arrow {
+ bottom: 0;
+ right: $tooltip-arrow-width;
+ margin-bottom: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ &.top-right .tooltip-arrow {
+ bottom: 0;
+ left: $tooltip-arrow-width;
+ margin-bottom: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ &.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-right-color: $tooltip-arrow-color;
+ }
+ &.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -$tooltip-arrow-width;
+ border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-left-color: $tooltip-arrow-color;
+ }
+ &.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -$tooltip-arrow-width;
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+ &.bottom-left .tooltip-arrow {
+ top: 0;
+ right: $tooltip-arrow-width;
+ margin-top: -$tooltip-arrow-width;
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+ &.bottom-right .tooltip-arrow {
+ top: 0;
+ left: $tooltip-arrow-width;
+ margin-top: -$tooltip-arrow-width;
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+}
diff --git a/scss/bootstrap/_type.scss b/scss/bootstrap/_type.scss
new file mode 100644
index 00000000..62d685cf
--- /dev/null
+++ b/scss/bootstrap/_type.scss
@@ -0,0 +1,298 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Headings
+// -------------------------
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: $headings-font-family;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ color: $headings-color;
+
+ small,
+ .small {
+ font-weight: normal;
+ line-height: 1;
+ color: $headings-small-color;
+ }
+}
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+ margin-top: $line-height-computed;
+ margin-bottom: ($line-height-computed / 2);
+
+ small,
+ .small {
+ font-size: 65%;
+ }
+}
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+ margin-top: ($line-height-computed / 2);
+ margin-bottom: ($line-height-computed / 2);
+
+ small,
+ .small {
+ font-size: 75%;
+ }
+}
+
+h1, .h1 { font-size: $font-size-h1; }
+h2, .h2 { font-size: $font-size-h2; }
+h3, .h3 { font-size: $font-size-h3; }
+h4, .h4 { font-size: $font-size-h4; }
+h5, .h5 { font-size: $font-size-h5; }
+h6, .h6 { font-size: $font-size-h6; }
+
+
+// Body text
+// -------------------------
+
+p {
+ margin: 0 0 ($line-height-computed / 2);
+}
+
+.lead {
+ margin-bottom: $line-height-computed;
+ font-size: floor(($font-size-base * 1.15));
+ font-weight: 300;
+ line-height: 1.4;
+
+ @media (min-width: $screen-sm-min) {
+ font-size: ($font-size-base * 1.5);
+ }
+}
+
+
+// Emphasis & misc
+// -------------------------
+
+// Ex: (12px small font / 14px base font) * 100% = about 85%
+small,
+.small {
+ font-size: floor((100% * $font-size-small / $font-size-base));
+}
+
+mark,
+.mark {
+ background-color: $state-warning-bg;
+ padding: .2em;
+}
+
+// Alignment
+.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; }
+
+// Transformation
+.text-lowercase { text-transform: lowercase; }
+.text-uppercase { text-transform: uppercase; }
+.text-capitalize { text-transform: capitalize; }
+
+// Contextual colors
+.text-muted {
+ color: $text-muted;
+}
+
+@include text-emphasis-variant('.text-primary', $brand-primary);
+
+@include text-emphasis-variant('.text-success', $state-success-text);
+
+@include text-emphasis-variant('.text-info', $state-info-text);
+
+@include text-emphasis-variant('.text-warning', $state-warning-text);
+
+@include text-emphasis-variant('.text-danger', $state-danger-text);
+
+// Contextual backgrounds
+// For now we'll leave these alongside the text classes until v4 when we can
+// safely shift things around (per SemVer rules).
+.bg-primary {
+ // Given the contrast here, this is the only class to have its color inverted
+ // automatically.
+ color: #fff;
+}
+@include bg-variant('.bg-primary', $brand-primary);
+
+@include bg-variant('.bg-success', $state-success-bg);
+
+@include bg-variant('.bg-info', $state-info-bg);
+
+@include bg-variant('.bg-warning', $state-warning-bg);
+
+@include bg-variant('.bg-danger', $state-danger-bg);
+
+
+// Page header
+// -------------------------
+
+.page-header {
+ padding-bottom: (($line-height-computed / 2) - 1);
+ margin: ($line-height-computed * 2) 0 $line-height-computed;
+ border-bottom: 1px solid $page-header-border-color;
+}
+
+
+// Lists
+// -------------------------
+
+// Unordered and Ordered lists
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: ($line-height-computed / 2);
+ ul,
+ ol {
+ margin-bottom: 0;
+ }
+}
+
+// List options
+
+// [converter] extracted from `.list-unstyled` for libsass compatibility
+@mixin list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+// [converter] extracted as `@mixin list-unstyled` for libsass compatibility
+.list-unstyled {
+ @include list-unstyled;
+}
+
+
+// Inline turns list items into inline-block
+.list-inline {
+ @include list-unstyled;
+ margin-left: -5px;
+
+ > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+// Description Lists
+dl {
+ margin-top: 0; // Remove browser default
+ margin-bottom: $line-height-computed;
+}
+dt,
+dd {
+ line-height: $line-height-base;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: 0; // Undo browser default
+}
+
+// Horizontal description lists
+//
+// Defaults to being stacked without any of the below styles applied, until the
+// grid breakpoint is reached (default of ~768px).
+
+.dl-horizontal {
+ dd {
+ @include clearfix; // Clear the floated `dt` if an empty `dd` is present
+ }
+
+ @media (min-width: $grid-float-breakpoint) {
+ dt {
+ float: left;
+ width: ($dl-horizontal-offset - 20);
+ clear: left;
+ text-align: right;
+ @include text-overflow;
+ }
+ dd {
+ margin-left: $dl-horizontal-offset;
+ }
+ }
+}
+
+
+// Misc
+// -------------------------
+
+// Abbreviations and acronyms
+abbr[title],
+// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted $abbr-border-color;
+}
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+// Blockquotes
+blockquote {
+ padding: ($line-height-computed / 2) $line-height-computed;
+ margin: 0 0 $line-height-computed;
+ font-size: $blockquote-font-size;
+ border-left: 5px solid $blockquote-border-color;
+
+ p,
+ ul,
+ ol {
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ // Note: Deprecated small and .small as of v3.1.0
+ // Context: https://github.com/twbs/bootstrap/issues/11660
+ footer,
+ small,
+ .small {
+ display: block;
+ font-size: 80%; // back to default font-size
+ line-height: $line-height-base;
+ color: $blockquote-small-color;
+
+ &:before {
+ content: '\2014 \00A0'; // em dash, nbsp
+ }
+ }
+}
+
+// Opposite alignment of blockquote
+//
+// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid $blockquote-border-color;
+ border-left: 0;
+ text-align: right;
+
+ // Account for citation
+ footer,
+ small,
+ .small {
+ &:before { content: ''; }
+ &:after {
+ content: '\00A0 \2014'; // nbsp, em dash
+ }
+ }
+}
+
+// Addresses
+address {
+ margin-bottom: $line-height-computed;
+ font-style: normal;
+ line-height: $line-height-base;
+}
diff --git a/scss/bootstrap/_utilities.scss b/scss/bootstrap/_utilities.scss
new file mode 100644
index 00000000..386c5240
--- /dev/null
+++ b/scss/bootstrap/_utilities.scss
@@ -0,0 +1,56 @@
+//
+// Utility classes
+// --------------------------------------------------
+
+
+// Floats
+// -------------------------
+
+.clearfix {
+ @include clearfix;
+}
+.center-block {
+ @include center-block;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+
+
+// Toggling content
+// -------------------------
+
+// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ @include text-hide;
+}
+
+
+// Hide from screenreaders and browsers
+//
+// Credit: HTML5 Boilerplate
+
+.hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+
+
+// For Affix plugin
+// -------------------------
+
+.affix {
+ position: fixed;
+}
diff --git a/scss/bootstrap/_variables.scss b/scss/bootstrap/_variables.scss
new file mode 100644
index 00000000..578b7b69
--- /dev/null
+++ b/scss/bootstrap/_variables.scss
@@ -0,0 +1,862 @@
+$bootstrap-sass-asset-helper: false !default;
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+$gray-base: #000 !default;
+$gray-darker: lighten($gray-base, 13.5%) !default; // #222
+$gray-dark: lighten($gray-base, 20%) !default; // #333
+$gray: lighten($gray-base, 33.5%) !default; // #555
+$gray-light: lighten($gray-base, 46.7%) !default; // #777
+$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee
+
+$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7
+$brand-success: #5cb85c !default;
+$brand-info: #5bc0de !default;
+$brand-warning: #f0ad4e !default;
+$brand-danger: #d9534f !default;
+
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for ``.
+$body-bg: #fff !default;
+//** Global text color on ``.
+$text-color: $gray-dark !default;
+
+//** Global textual link color.
+$link-color: $brand-primary !default;
+//** Link hover color set via `darken()` function.
+$link-hover-color: darken($link-color, 15%) !default;
+//** Link hover decoration.
+$link-hover-decoration: underline !default;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
+$font-family-serif: Georgia, "Times New Roman", Times, serif !default;
+//** Default monospace fonts for `
`, ``, and ``.
+$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace !default;
+$font-family-base: $font-family-sans-serif !default;
+
+$font-size-base: 14px !default;
+$font-size-large: ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-small: ceil(($font-size-base * 0.85)) !default; // ~12px
+
+$font-size-h1: floor(($font-size-base * 2.6)) !default; // ~36px
+$font-size-h2: floor(($font-size-base * 2.15)) !default; // ~30px
+$font-size-h3: ceil(($font-size-base * 1.7)) !default; // ~24px
+$font-size-h4: ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-h5: $font-size-base !default;
+$font-size-h6: ceil(($font-size-base * 0.85)) !default; // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base: 1.428571429 !default; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
+
+//** By default, this inherits from the ``.
+$headings-font-family: inherit !default;
+$headings-font-weight: 500 !default;
+$headings-line-height: 1.1 !default;
+$headings-color: inherit !default;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+
+// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
+// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
+$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
+
+//** File name for all font files.
+$icon-font-name: "glyphicons-halflings-regular" !default;
+//** Element ID within SVG icon file.
+$icon-font-svg-id: "glyphicons_halflingsregular" !default;
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical: 6px !default;
+$padding-base-horizontal: 12px !default;
+
+$padding-large-vertical: 10px !default;
+$padding-large-horizontal: 16px !default;
+
+$padding-small-vertical: 5px !default;
+$padding-small-horizontal: 10px !default;
+
+$padding-xs-vertical: 1px !default;
+$padding-xs-horizontal: 5px !default;
+
+$line-height-large: 1.3333333 !default; // extra decimals for Win 8.1 Chrome
+$line-height-small: 1.5 !default;
+
+$border-radius-base: 4px !default;
+$border-radius-large: 6px !default;
+$border-radius-small: 3px !default;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color: #fff !default;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg: $brand-primary !default;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+$caret-width-base: 4px !default;
+//** Carets increase slightly in size for larger components.
+$caret-width-large: 5px !default;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ` `s.
+$table-cell-padding: 8px !default;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding: 5px !default;
+
+//** Default background color used for all tables.
+$table-bg: transparent !default;
+//** Background color used for `.table-striped`.
+$table-bg-accent: #f9f9f9 !default;
+//** Background color used for `.table-hover`.
+$table-bg-hover: #f5f5f5 !default;
+$table-bg-active: $table-bg-hover !default;
+
+//** Border color for table and cell borders.
+$table-border-color: #ddd !default;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$btn-font-weight: normal !default;
+
+$btn-default-color: #333 !default;
+$btn-default-bg: #fff !default;
+$btn-default-border: #ccc !default;
+
+$btn-primary-color: #fff !default;
+$btn-primary-bg: $brand-primary !default;
+$btn-primary-border: darken($btn-primary-bg, 5%) !default;
+
+$btn-success-color: #fff !default;
+$btn-success-bg: $brand-success !default;
+$btn-success-border: darken($btn-success-bg, 5%) !default;
+
+$btn-info-color: #fff !default;
+$btn-info-bg: $brand-info !default;
+$btn-info-border: darken($btn-info-bg, 5%) !default;
+
+$btn-warning-color: #fff !default;
+$btn-warning-bg: $brand-warning !default;
+$btn-warning-border: darken($btn-warning-bg, 5%) !default;
+
+$btn-danger-color: #fff !default;
+$btn-danger-bg: $brand-danger !default;
+$btn-danger-border: darken($btn-danger-bg, 5%) !default;
+
+$btn-link-disabled-color: $gray-light !default;
+
+
+//== Forms
+//
+//##
+
+//** ` ` background color
+$input-bg: #fff !default;
+//** ` ` background color
+$input-bg-disabled: $gray-lighter !default;
+
+//** Text color for ` `s
+$input-color: $gray !default;
+//** ` ` border color
+$input-border: #ccc !default;
+
+// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on ``s in some browsers, due to the limited stylability of ``s in CSS.
+$input-border-radius: $border-radius-base !default;
+//** Large `.form-control` border radius
+$input-border-radius-large: $border-radius-large !default;
+//** Small `.form-control` border radius
+$input-border-radius-small: $border-radius-small !default;
+
+//** Border color for inputs on focus
+$input-border-focus: #66afe9 !default;
+
+//** Placeholder text color
+$input-color-placeholder: #999 !default;
+
+//** Default `.form-control` height
+$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
+//** Large `.form-control` height
+$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
+//** Small `.form-control` height
+$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
+
+$legend-color: $gray-dark !default;
+$legend-border-color: #e5e5e5 !default;
+
+//** Background color for textual input addons
+$input-group-addon-bg: $gray-lighter !default;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border !default;
+
+//** Disabled cursor for form controls and buttons.
+$cursor-disabled: not-allowed !default;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg: #fff !default;
+//** Dropdown menu `border-color`.
+$dropdown-border: rgba(0,0,0,.15) !default;
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border: #ccc !default;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg: #e5e5e5 !default;
+
+//** Dropdown link text color.
+$dropdown-link-color: $gray-dark !default;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color: darken($gray-dark, 5%) !default;
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg: #f5f5f5 !default;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color: $component-active-color !default;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg: $component-active-bg !default;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color: $gray-light !default;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color: $gray-light !default;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color: #000 !default;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar: 1000 !default;
+$zindex-dropdown: 1000 !default;
+$zindex-popover: 1060 !default;
+$zindex-tooltip: 1070 !default;
+$zindex-navbar-fixed: 1030 !default;
+$zindex-modal: 1040 !default;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs: 480px !default;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min: $screen-xs !default;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone: $screen-xs-min !default;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm: 768px !default;
+$screen-sm-min: $screen-sm !default;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet: $screen-sm-min !default;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md: 992px !default;
+$screen-md-min: $screen-md !default;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop: $screen-md-min !default;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg: 1200px !default;
+$screen-lg-min: $screen-lg !default;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop: $screen-lg-min !default;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max: ($screen-sm-min - 1) !default;
+$screen-sm-max: ($screen-md-min - 1) !default;
+$screen-md-max: ($screen-lg-min - 1) !default;
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns: 12 !default;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width: 30px !default;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint: $screen-sm-min !default;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet: (720px + $grid-gutter-width) !default;
+//** For `$screen-sm-min` and up.
+$container-sm: $container-tablet !default;
+
+// Medium screen / desktop
+$container-desktop: (940px + $grid-gutter-width) !default;
+//** For `$screen-md-min` and up.
+$container-md: $container-desktop !default;
+
+// Large screen / wide desktop
+$container-large-desktop: (1140px + $grid-gutter-width) !default;
+//** For `$screen-lg-min` and up.
+$container-lg: $container-large-desktop !default;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height: 50px !default;
+$navbar-margin-bottom: $line-height-computed !default;
+$navbar-border-radius: $border-radius-base !default;
+$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default;
+$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default;
+$navbar-collapse-max-height: 340px !default;
+
+$navbar-default-color: #777 !default;
+$navbar-default-bg: #f8f8f8 !default;
+$navbar-default-border: darken($navbar-default-bg, 6.5%) !default;
+
+// Navbar links
+$navbar-default-link-color: #777 !default;
+$navbar-default-link-hover-color: #333 !default;
+$navbar-default-link-hover-bg: transparent !default;
+$navbar-default-link-active-color: #555 !default;
+$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default;
+$navbar-default-link-disabled-color: #ccc !default;
+$navbar-default-link-disabled-bg: transparent !default;
+
+// Navbar brand label
+$navbar-default-brand-color: $navbar-default-link-color !default;
+$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default;
+$navbar-default-brand-hover-bg: transparent !default;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg: #ddd !default;
+$navbar-default-toggle-icon-bar-bg: #888 !default;
+$navbar-default-toggle-border-color: #ddd !default;
+
+
+// Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color: lighten($gray-light, 15%) !default;
+$navbar-inverse-bg: #222 !default;
+$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default;
+
+// Inverted navbar links
+$navbar-inverse-link-color: lighten($gray-light, 15%) !default;
+$navbar-inverse-link-hover-color: #fff !default;
+$navbar-inverse-link-hover-bg: transparent !default;
+$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default;
+$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default;
+$navbar-inverse-link-disabled-color: #444 !default;
+$navbar-inverse-link-disabled-bg: transparent !default;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color: $navbar-inverse-link-color !default;
+$navbar-inverse-brand-hover-color: #fff !default;
+$navbar-inverse-brand-hover-bg: transparent !default;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg: #333 !default;
+$navbar-inverse-toggle-icon-bar-bg: #fff !default;
+$navbar-inverse-toggle-border-color: #333 !default;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding: 10px 15px !default;
+$nav-link-hover-bg: $gray-lighter !default;
+
+$nav-disabled-link-color: $gray-light !default;
+$nav-disabled-link-hover-color: $gray-light !default;
+
+//== Tabs
+$nav-tabs-border-color: #ddd !default;
+
+$nav-tabs-link-hover-border-color: $gray-lighter !default;
+
+$nav-tabs-active-link-hover-bg: $body-bg !default;
+$nav-tabs-active-link-hover-color: $gray !default;
+$nav-tabs-active-link-hover-border-color: #ddd !default;
+
+$nav-tabs-justified-link-border-color: #ddd !default;
+$nav-tabs-justified-active-link-border-color: $body-bg !default;
+
+//== Pills
+$nav-pills-border-radius: $border-radius-base !default;
+$nav-pills-active-link-hover-bg: $component-active-bg !default;
+$nav-pills-active-link-hover-color: $component-active-color !default;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color: $link-color !default;
+$pagination-bg: #fff !default;
+$pagination-border: #ddd !default;
+
+$pagination-hover-color: $link-hover-color !default;
+$pagination-hover-bg: $gray-lighter !default;
+$pagination-hover-border: #ddd !default;
+
+$pagination-active-color: #fff !default;
+$pagination-active-bg: $brand-primary !default;
+$pagination-active-border: $brand-primary !default;
+
+$pagination-disabled-color: $gray-light !default;
+$pagination-disabled-bg: #fff !default;
+$pagination-disabled-border: #ddd !default;
+
+
+//== Pager
+//
+//##
+
+$pager-bg: $pagination-bg !default;
+$pager-border: $pagination-border !default;
+$pager-border-radius: 15px !default;
+
+$pager-hover-bg: $pagination-hover-bg !default;
+
+$pager-active-bg: $pagination-active-bg !default;
+$pager-active-color: $pagination-active-color !default;
+
+$pager-disabled-color: $pagination-disabled-color !default;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding: 30px !default;
+$jumbotron-color: inherit !default;
+$jumbotron-bg: $gray-lighter !default;
+$jumbotron-heading-color: inherit !default;
+$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default;
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text: #3c763d !default;
+$state-success-bg: #dff0d8 !default;
+$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default;
+
+$state-info-text: #31708f !default;
+$state-info-bg: #d9edf7 !default;
+$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default;
+
+$state-warning-text: #8a6d3b !default;
+$state-warning-bg: #fcf8e3 !default;
+$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default;
+
+$state-danger-text: #a94442 !default;
+$state-danger-bg: #f2dede !default;
+$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default;
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width: 200px !default;
+//** Tooltip text color
+$tooltip-color: #fff !default;
+//** Tooltip background color
+$tooltip-bg: #000 !default;
+$tooltip-opacity: .9 !default;
+
+//** Tooltip arrow width
+$tooltip-arrow-width: 5px !default;
+//** Tooltip arrow color
+$tooltip-arrow-color: $tooltip-bg !default;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg: #fff !default;
+//** Popover maximum width
+$popover-max-width: 276px !default;
+//** Popover border color
+$popover-border-color: rgba(0,0,0,.2) !default;
+//** Popover fallback border color
+$popover-fallback-border-color: #ccc !default;
+
+//** Popover title background color
+$popover-title-bg: darken($popover-bg, 3%) !default;
+
+//** Popover arrow width
+$popover-arrow-width: 10px !default;
+//** Popover arrow color
+$popover-arrow-color: $popover-bg !default;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width: ($popover-arrow-width + 1) !default;
+//** Popover outer arrow color
+$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default;
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg: $gray-light !default;
+//** Primary label background color
+$label-primary-bg: $brand-primary !default;
+//** Success label background color
+$label-success-bg: $brand-success !default;
+//** Info label background color
+$label-info-bg: $brand-info !default;
+//** Warning label background color
+$label-warning-bg: $brand-warning !default;
+//** Danger label background color
+$label-danger-bg: $brand-danger !default;
+
+//** Default label text color
+$label-color: #fff !default;
+//** Default text color of a linked label
+$label-link-hover-color: #fff !default;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding: 15px !default;
+
+//** Padding applied to the modal title
+$modal-title-padding: 15px !default;
+//** Modal title line-height
+$modal-title-line-height: $line-height-base !default;
+
+//** Background color of modal content area
+$modal-content-bg: #fff !default;
+//** Modal content border color
+$modal-content-border-color: rgba(0,0,0,.2) !default;
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color: #999 !default;
+
+//** Modal backdrop background color
+$modal-backdrop-bg: #000 !default;
+//** Modal backdrop opacity
+$modal-backdrop-opacity: .5 !default;
+//** Modal header border color
+$modal-header-border-color: #e5e5e5 !default;
+//** Modal footer border color
+$modal-footer-border-color: $modal-header-border-color !default;
+
+$modal-lg: 900px !default;
+$modal-md: 600px !default;
+$modal-sm: 300px !default;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding: 15px !default;
+$alert-border-radius: $border-radius-base !default;
+$alert-link-font-weight: bold !default;
+
+$alert-success-bg: $state-success-bg !default;
+$alert-success-text: $state-success-text !default;
+$alert-success-border: $state-success-border !default;
+
+$alert-info-bg: $state-info-bg !default;
+$alert-info-text: $state-info-text !default;
+$alert-info-border: $state-info-border !default;
+
+$alert-warning-bg: $state-warning-bg !default;
+$alert-warning-text: $state-warning-text !default;
+$alert-warning-border: $state-warning-border !default;
+
+$alert-danger-bg: $state-danger-bg !default;
+$alert-danger-text: $state-danger-text !default;
+$alert-danger-border: $state-danger-border !default;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg: #f5f5f5 !default;
+//** Progress bar text color
+$progress-bar-color: #fff !default;
+//** Variable for setting rounded corners on progress bar.
+$progress-border-radius: $border-radius-base !default;
+
+//** Default progress bar color
+$progress-bar-bg: $brand-primary !default;
+//** Success progress bar color
+$progress-bar-success-bg: $brand-success !default;
+//** Warning progress bar color
+$progress-bar-warning-bg: $brand-warning !default;
+//** Danger progress bar color
+$progress-bar-danger-bg: $brand-danger !default;
+//** Info progress bar color
+$progress-bar-info-bg: $brand-info !default;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg: #fff !default;
+//** `.list-group-item` border color
+$list-group-border: #ddd !default;
+//** List group border radius
+$list-group-border-radius: $border-radius-base !default;
+
+//** Background color of single list items on hover
+$list-group-hover-bg: #f5f5f5 !default;
+//** Text color of active list items
+$list-group-active-color: $component-active-color !default;
+//** Background color of active list items
+$list-group-active-bg: $component-active-bg !default;
+//** Border color of active list elements
+$list-group-active-border: $list-group-active-bg !default;
+//** Text color for content within active list items
+$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default;
+
+//** Text color of disabled list items
+$list-group-disabled-color: $gray-light !default;
+//** Background color of disabled list items
+$list-group-disabled-bg: $gray-lighter !default;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color !default;
+
+$list-group-link-color: #555 !default;
+$list-group-link-hover-color: $list-group-link-color !default;
+$list-group-link-heading-color: #333 !default;
+
+
+//== Panels
+//
+//##
+
+$panel-bg: #fff !default;
+$panel-body-padding: 15px !default;
+$panel-heading-padding: 10px 15px !default;
+$panel-footer-padding: $panel-heading-padding !default;
+$panel-border-radius: $border-radius-base !default;
+
+//** Border color for elements within panels
+$panel-inner-border: #ddd !default;
+$panel-footer-bg: #f5f5f5 !default;
+
+$panel-default-text: $gray-dark !default;
+$panel-default-border: #ddd !default;
+$panel-default-heading-bg: #f5f5f5 !default;
+
+$panel-primary-text: #fff !default;
+$panel-primary-border: $brand-primary !default;
+$panel-primary-heading-bg: $brand-primary !default;
+
+$panel-success-text: $state-success-text !default;
+$panel-success-border: $state-success-border !default;
+$panel-success-heading-bg: $state-success-bg !default;
+
+$panel-info-text: $state-info-text !default;
+$panel-info-border: $state-info-border !default;
+$panel-info-heading-bg: $state-info-bg !default;
+
+$panel-warning-text: $state-warning-text !default;
+$panel-warning-border: $state-warning-border !default;
+$panel-warning-heading-bg: $state-warning-bg !default;
+
+$panel-danger-text: $state-danger-text !default;
+$panel-danger-border: $state-danger-border !default;
+$panel-danger-heading-bg: $state-danger-bg !default;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding: 4px !default;
+//** Thumbnail background color
+$thumbnail-bg: $body-bg !default;
+//** Thumbnail border color
+$thumbnail-border: #ddd !default;
+//** Thumbnail border radius
+$thumbnail-border-radius: $border-radius-base !default;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color: $text-color !default;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding: 9px !default;
+
+
+//== Wells
+//
+//##
+
+$well-bg: #f5f5f5 !default;
+$well-border: darken($well-bg, 7%) !default;
+
+
+//== Badges
+//
+//##
+
+$badge-color: #fff !default;
+//** Linked badge text color on hover
+$badge-link-hover-color: #fff !default;
+$badge-bg: $gray-light !default;
+
+//** Badge text color in active nav link
+$badge-active-color: $link-color !default;
+//** Badge background color in active nav link
+$badge-active-bg: #fff !default;
+
+$badge-font-weight: bold !default;
+$badge-line-height: 1 !default;
+$badge-border-radius: 10px !default;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical: 8px !default;
+$breadcrumb-padding-horizontal: 15px !default;
+//** Breadcrumb background color
+$breadcrumb-bg: #f5f5f5 !default;
+//** Breadcrumb text color
+$breadcrumb-color: #ccc !default;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color: $gray-light !default;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator: "/" !default;
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default;
+
+$carousel-control-color: #fff !default;
+$carousel-control-width: 15% !default;
+$carousel-control-opacity: .5 !default;
+$carousel-control-font-size: 20px !default;
+
+$carousel-indicator-active-bg: #fff !default;
+$carousel-indicator-border-color: #fff !default;
+
+$carousel-caption-color: #fff !default;
+
+
+//== Close
+//
+//##
+
+$close-font-weight: bold !default;
+$close-color: #000 !default;
+$close-text-shadow: 0 1px 0 #fff !default;
+
+
+//== Code
+//
+//##
+
+$code-color: #c7254e !default;
+$code-bg: #f9f2f4 !default;
+
+$kbd-color: #fff !default;
+$kbd-bg: #333 !default;
+
+$pre-bg: #f5f5f5 !default;
+$pre-color: $gray-dark !default;
+$pre-border-color: #ccc !default;
+$pre-scrollable-max-height: 340px !default;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px !default;
+//** Text muted color
+$text-muted: $gray-light !default;
+//** Abbreviations and acronyms border color
+$abbr-border-color: $gray-light !default;
+//** Headings small color
+$headings-small-color: $gray-light !default;
+//** Blockquote small color
+$blockquote-small-color: $gray-light !default;
+//** Blockquote font size
+$blockquote-font-size: ($font-size-base * 1.25) !default;
+//** Blockquote border color
+$blockquote-border-color: $gray-lighter !default;
+//** Page header border color
+$page-header-border-color: $gray-lighter !default;
+//** Width of horizontal description list titles
+$dl-horizontal-offset: $component-offset-horizontal !default;
+//** Horizontal line color.
+$hr-border: $gray-lighter !default;
diff --git a/scss/bootstrap/_wells.scss b/scss/bootstrap/_wells.scss
new file mode 100644
index 00000000..b8657118
--- /dev/null
+++ b/scss/bootstrap/_wells.scss
@@ -0,0 +1,29 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+// Base class
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: $well-bg;
+ border: 1px solid $well-border;
+ border-radius: $border-radius-base;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+ blockquote {
+ border-color: #ddd;
+ border-color: rgba(0,0,0,.15);
+ }
+}
+
+// Sizes
+.well-lg {
+ padding: 24px;
+ border-radius: $border-radius-large;
+}
+.well-sm {
+ padding: 9px;
+ border-radius: $border-radius-small;
+}
diff --git a/scss/bootstrap/mixins/_alerts.scss b/scss/bootstrap/mixins/_alerts.scss
new file mode 100644
index 00000000..3faf0b5a
--- /dev/null
+++ b/scss/bootstrap/mixins/_alerts.scss
@@ -0,0 +1,14 @@
+// Alerts
+
+@mixin alert-variant($background, $border, $text-color) {
+ background-color: $background;
+ border-color: $border;
+ color: $text-color;
+
+ hr {
+ border-top-color: darken($border, 5%);
+ }
+ .alert-link {
+ color: darken($text-color, 10%);
+ }
+}
diff --git a/scss/bootstrap/mixins/_background-variant.scss b/scss/bootstrap/mixins/_background-variant.scss
new file mode 100644
index 00000000..4993bd2b
--- /dev/null
+++ b/scss/bootstrap/mixins/_background-variant.scss
@@ -0,0 +1,11 @@
+// Contextual backgrounds
+
+// [converter] $parent hack
+@mixin bg-variant($parent, $color) {
+ #{$parent} {
+ background-color: $color;
+ }
+ a#{$parent}:hover {
+ background-color: darken($color, 10%);
+ }
+}
diff --git a/scss/bootstrap/mixins/_border-radius.scss b/scss/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 00000000..ce194998
--- /dev/null
+++ b/scss/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+@mixin border-top-radius($radius) {
+ border-top-right-radius: $radius;
+ border-top-left-radius: $radius;
+}
+@mixin border-right-radius($radius) {
+ border-bottom-right-radius: $radius;
+ border-top-right-radius: $radius;
+}
+@mixin border-bottom-radius($radius) {
+ border-bottom-right-radius: $radius;
+ border-bottom-left-radius: $radius;
+}
+@mixin border-left-radius($radius) {
+ border-bottom-left-radius: $radius;
+ border-top-left-radius: $radius;
+}
diff --git a/scss/bootstrap/mixins/_buttons.scss b/scss/bootstrap/mixins/_buttons.scss
new file mode 100644
index 00000000..74a4ffc5
--- /dev/null
+++ b/scss/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,52 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+@mixin button-variant($color, $background, $border) {
+ color: $color;
+ background-color: $background;
+ border-color: $border;
+
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ color: $color;
+ background-color: darken($background, 10%);
+ border-color: darken($border, 12%);
+ }
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background-color: $background;
+ border-color: $border;
+ }
+ }
+
+ .badge {
+ color: $background;
+ background-color: $color;
+ }
+}
+
+// Button sizes
+@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ line-height: $line-height;
+ border-radius: $border-radius;
+}
diff --git a/scss/bootstrap/mixins/_center-block.scss b/scss/bootstrap/mixins/_center-block.scss
new file mode 100644
index 00000000..e06fb5e2
--- /dev/null
+++ b/scss/bootstrap/mixins/_center-block.scss
@@ -0,0 +1,7 @@
+// Center-align a block level element
+
+@mixin center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
diff --git a/scss/bootstrap/mixins/_clearfix.scss b/scss/bootstrap/mixins/_clearfix.scss
new file mode 100644
index 00000000..dc3e2ab4
--- /dev/null
+++ b/scss/bootstrap/mixins/_clearfix.scss
@@ -0,0 +1,22 @@
+// Clearfix
+//
+// For modern browsers
+// 1. The space content is one way to avoid an Opera bug when the
+// contenteditable attribute is included anywhere else in the document.
+// Otherwise it causes space to appear at the top and bottom of elements
+// that are clearfixed.
+// 2. The use of `table` rather than `block` is only necessary if using
+// `:before` to contain the top-margins of child elements.
+//
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
+
+@mixin clearfix() {
+ &:before,
+ &:after {
+ content: " "; // 1
+ display: table; // 2
+ }
+ &:after {
+ clear: both;
+ }
+}
diff --git a/scss/bootstrap/mixins/_forms.scss b/scss/bootstrap/mixins/_forms.scss
new file mode 100644
index 00000000..277aa5f8
--- /dev/null
+++ b/scss/bootstrap/mixins/_forms.scss
@@ -0,0 +1,88 @@
+// Form validation states
+//
+// Used in forms.less to generate the form validation CSS for warnings, errors,
+// and successes.
+
+@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
+ // Color the label and help text
+ .help-block,
+ .control-label,
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline,
+ &.radio label,
+ &.checkbox label,
+ &.radio-inline label,
+ &.checkbox-inline label {
+ color: $text-color;
+ }
+ // Set the border and box shadow on specific inputs to match
+ .form-control {
+ border-color: $border-color;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken($border-color, 10%);
+ $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
+ @include box-shadow($shadow);
+ }
+ }
+ // Set validation states also for addons
+ .input-group-addon {
+ color: $text-color;
+ border-color: $border-color;
+ background-color: $background-color;
+ }
+ // Optional feedback icon
+ .form-control-feedback {
+ color: $text-color;
+ }
+}
+
+
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `$input-border-focus` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+@mixin form-control-focus($color: $input-border-focus) {
+ $color-rgba: rgba(red($color), green($color), blue($color), .6);
+ &:focus {
+ border-color: $color;
+ outline: 0;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
+ }
+}
+
+// Form control sizing
+//
+// Relative text size, padding, and border-radii changes for form controls. For
+// horizontal sizing, wrap controls in the predefined grid classes. ``
+// element gets special love because it's special, and that's a fact!
+// [converter] $parent hack
+@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+ #{$parent} {
+ height: $input-height;
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ line-height: $line-height;
+ border-radius: $border-radius;
+ }
+
+ select#{$parent} {
+ height: $input-height;
+ line-height: $input-height;
+ }
+
+ textarea#{$parent},
+ select[multiple]#{$parent} {
+ height: auto;
+ }
+}
diff --git a/scss/bootstrap/mixins/_gradients.scss b/scss/bootstrap/mixins/_gradients.scss
new file mode 100644
index 00000000..a8939f5a
--- /dev/null
+++ b/scss/bootstrap/mixins/_gradients.scss
@@ -0,0 +1,58 @@
+// Gradients
+
+
+
+// Horizontal gradient, from left to right
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+// Color stops are not available in IE9 and below.
+@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+ background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
+}
+
+// Vertical gradient, from top to bottom
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+// Color stops are not available in IE9 and below.
+@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+ background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
+}
+
+@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
+ background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
+ background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+}
+@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
+ background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
+ background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+ background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
+ background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
+ background-image: radial-gradient(circle, $inner-color, $outer-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
+ background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
diff --git a/scss/bootstrap/mixins/_grid-framework.scss b/scss/bootstrap/mixins/_grid-framework.scss
new file mode 100644
index 00000000..fb28cb47
--- /dev/null
+++ b/scss/bootstrap/mixins/_grid-framework.scss
@@ -0,0 +1,81 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
+ @for $i from (1 + 1) through $grid-columns {
+ $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
+ }
+ #{$list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: ($grid-gutter-width / 2);
+ padding-right: ($grid-gutter-width / 2);
+ }
+}
+
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
+ @for $i from (1 + 1) through $grid-columns {
+ $list: "#{$list}, .col-#{$class}-#{$i}";
+ }
+ #{$list} {
+ float: left;
+ }
+}
+
+
+@mixin calc-grid-column($index, $class, $type) {
+ @if ($type == width) and ($index > 0) {
+ .col-#{$class}-#{$index} {
+ width: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == push) and ($index > 0) {
+ .col-#{$class}-push-#{$index} {
+ left: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == push) and ($index == 0) {
+ .col-#{$class}-push-0 {
+ left: auto;
+ }
+ }
+ @if ($type == pull) and ($index > 0) {
+ .col-#{$class}-pull-#{$index} {
+ right: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == pull) and ($index == 0) {
+ .col-#{$class}-pull-0 {
+ right: auto;
+ }
+ }
+ @if ($type == offset) {
+ .col-#{$class}-offset-#{$index} {
+ margin-left: percentage(($index / $grid-columns));
+ }
+ }
+}
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin loop-grid-columns($columns, $class, $type) {
+ @for $i from 0 through $columns {
+ @include calc-grid-column($i, $class, $type);
+ }
+}
+
+
+// Create grid for specific class
+@mixin make-grid($class) {
+ @include float-grid-columns($class);
+ @include loop-grid-columns($grid-columns, $class, width);
+ @include loop-grid-columns($grid-columns, $class, pull);
+ @include loop-grid-columns($grid-columns, $class, push);
+ @include loop-grid-columns($grid-columns, $class, offset);
+}
diff --git a/scss/bootstrap/mixins/_grid.scss b/scss/bootstrap/mixins/_grid.scss
new file mode 100644
index 00000000..ae164338
--- /dev/null
+++ b/scss/bootstrap/mixins/_grid.scss
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+@mixin container-fixed($gutter: $grid-gutter-width) {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+ @include clearfix;
+}
+
+// Creates a wrapper for a series of columns
+@mixin make-row($gutter: $grid-gutter-width) {
+ margin-left: ($gutter / -2);
+ margin-right: ($gutter / -2);
+ @include clearfix;
+}
+
+// Generate the extra small columns
+@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+}
+@mixin make-xs-column-offset($columns) {
+ margin-left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-push($columns) {
+ left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-pull($columns) {
+ right: percentage(($columns / $grid-columns));
+}
+
+// Generate the small columns
+@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-sm-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-offset($columns) {
+ @media (min-width: $screen-sm-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-push($columns) {
+ @media (min-width: $screen-sm-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-pull($columns) {
+ @media (min-width: $screen-sm-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
+
+// Generate the medium columns
+@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-md-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-offset($columns) {
+ @media (min-width: $screen-md-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-push($columns) {
+ @media (min-width: $screen-md-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-pull($columns) {
+ @media (min-width: $screen-md-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
+
+// Generate the large columns
+@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-lg-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-offset($columns) {
+ @media (min-width: $screen-lg-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-push($columns) {
+ @media (min-width: $screen-lg-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-pull($columns) {
+ @media (min-width: $screen-lg-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
diff --git a/scss/bootstrap/mixins/_hide-text.scss b/scss/bootstrap/mixins/_hide-text.scss
new file mode 100644
index 00000000..c59d7361
--- /dev/null
+++ b/scss/bootstrap/mixins/_hide-text.scss
@@ -0,0 +1,21 @@
+// CSS image replacement
+//
+// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
+//
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (will be removed in v4)
+@mixin hide-text() {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+// New mixin to use as of v3.0.1
+@mixin text-hide() {
+ @include hide-text;
+}
diff --git a/scss/bootstrap/mixins/_image.scss b/scss/bootstrap/mixins/_image.scss
new file mode 100644
index 00000000..c8dcf5e9
--- /dev/null
+++ b/scss/bootstrap/mixins/_image.scss
@@ -0,0 +1,33 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+@mixin img-responsive($display: block) {
+ display: $display;
+ max-width: 100%; // Part 1: Set a maximum relative to the parent
+ height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size. Note that the
+// spelling of `min--moz-device-pixel-ratio` is intentional.
+@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
+ background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
+
+ @media
+ only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
+ background-size: $width-1x $height-1x;
+ }
+}
diff --git a/scss/bootstrap/mixins/_labels.scss b/scss/bootstrap/mixins/_labels.scss
new file mode 100644
index 00000000..eda6dfd2
--- /dev/null
+++ b/scss/bootstrap/mixins/_labels.scss
@@ -0,0 +1,12 @@
+// Labels
+
+@mixin label-variant($color) {
+ background-color: $color;
+
+ &[href] {
+ &:hover,
+ &:focus {
+ background-color: darken($color, 10%);
+ }
+ }
+}
diff --git a/scss/bootstrap/mixins/_list-group.scss b/scss/bootstrap/mixins/_list-group.scss
new file mode 100644
index 00000000..5f05e7ba
--- /dev/null
+++ b/scss/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,31 @@
+// List Groups
+
+@mixin list-group-item-variant($state, $background, $color) {
+ .list-group-item-#{$state} {
+ color: $color;
+ background-color: $background;
+
+ // [converter] extracted a& to a.list-group-item-#{$state}
+ }
+
+ a.list-group-item-#{$state} {
+ color: $color;
+
+ .list-group-item-heading {
+ color: inherit;
+ }
+
+ &:hover,
+ &:focus {
+ color: $color;
+ background-color: darken($background, 5%);
+ }
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ color: #fff;
+ background-color: $color;
+ border-color: $color;
+ }
+ }
+}
diff --git a/scss/bootstrap/mixins/_nav-divider.scss b/scss/bootstrap/mixins/_nav-divider.scss
new file mode 100644
index 00000000..2e6da02a
--- /dev/null
+++ b/scss/bootstrap/mixins/_nav-divider.scss
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+@mixin nav-divider($color: #e5e5e5) {
+ height: 1px;
+ margin: (($line-height-computed / 2) - 1) 0;
+ overflow: hidden;
+ background-color: $color;
+}
diff --git a/scss/bootstrap/mixins/_nav-vertical-align.scss b/scss/bootstrap/mixins/_nav-vertical-align.scss
new file mode 100644
index 00000000..c8fbf1a7
--- /dev/null
+++ b/scss/bootstrap/mixins/_nav-vertical-align.scss
@@ -0,0 +1,9 @@
+// Navbar vertical align
+//
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
+
+@mixin navbar-vertical-align($element-height) {
+ margin-top: (($navbar-height - $element-height) / 2);
+ margin-bottom: (($navbar-height - $element-height) / 2);
+}
diff --git a/scss/bootstrap/mixins/_opacity.scss b/scss/bootstrap/mixins/_opacity.scss
new file mode 100644
index 00000000..88e9a576
--- /dev/null
+++ b/scss/bootstrap/mixins/_opacity.scss
@@ -0,0 +1,8 @@
+// Opacity
+
+@mixin opacity($opacity) {
+ opacity: $opacity;
+ // IE8 filter
+ $opacity-ie: ($opacity * 100);
+ filter: alpha(opacity=$opacity-ie);
+}
diff --git a/scss/bootstrap/mixins/_pagination.scss b/scss/bootstrap/mixins/_pagination.scss
new file mode 100644
index 00000000..43fff686
--- /dev/null
+++ b/scss/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,23 @@
+// Pagination
+
+@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) {
+ > li {
+ > a,
+ > span {
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ }
+ &:first-child {
+ > a,
+ > span {
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ @include border-right-radius($border-radius);
+ }
+ }
+ }
+}
diff --git a/scss/bootstrap/mixins/_panels.scss b/scss/bootstrap/mixins/_panels.scss
new file mode 100644
index 00000000..3ff31ae5
--- /dev/null
+++ b/scss/bootstrap/mixins/_panels.scss
@@ -0,0 +1,24 @@
+// Panels
+
+@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
+ border-color: $border;
+
+ & > .panel-heading {
+ color: $heading-text-color;
+ background-color: $heading-bg-color;
+ border-color: $heading-border;
+
+ + .panel-collapse > .panel-body {
+ border-top-color: $border;
+ }
+ .badge {
+ color: $heading-bg-color;
+ background-color: $heading-text-color;
+ }
+ }
+ & > .panel-footer {
+ + .panel-collapse > .panel-body {
+ border-bottom-color: $border;
+ }
+ }
+}
diff --git a/scss/bootstrap/mixins/_progress-bar.scss b/scss/bootstrap/mixins/_progress-bar.scss
new file mode 100644
index 00000000..90a62afc
--- /dev/null
+++ b/scss/bootstrap/mixins/_progress-bar.scss
@@ -0,0 +1,10 @@
+// Progress bars
+
+@mixin progress-bar-variant($color) {
+ background-color: $color;
+
+ // Deprecated parent class requirement as of v3.2.0
+ .progress-striped & {
+ @include gradient-striped;
+ }
+}
diff --git a/scss/bootstrap/mixins/_reset-filter.scss b/scss/bootstrap/mixins/_reset-filter.scss
new file mode 100644
index 00000000..bf730512
--- /dev/null
+++ b/scss/bootstrap/mixins/_reset-filter.scss
@@ -0,0 +1,8 @@
+// Reset filters for IE
+//
+// When you need to remove a gradient background, do not forget to use this to reset
+// the IE filter for IE9 and below.
+
+@mixin reset-filter() {
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
diff --git a/scss/bootstrap/mixins/_resize.scss b/scss/bootstrap/mixins/_resize.scss
new file mode 100644
index 00000000..83fa6379
--- /dev/null
+++ b/scss/bootstrap/mixins/_resize.scss
@@ -0,0 +1,6 @@
+// Resize anything
+
+@mixin resizable($direction) {
+ resize: $direction; // Options: horizontal, vertical, both
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+}
diff --git a/scss/bootstrap/mixins/_responsive-visibility.scss b/scss/bootstrap/mixins/_responsive-visibility.scss
new file mode 100644
index 00000000..9867db01
--- /dev/null
+++ b/scss/bootstrap/mixins/_responsive-visibility.scss
@@ -0,0 +1,21 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+// [converter] $parent hack
+@mixin responsive-visibility($parent) {
+ #{$parent} {
+ display: block !important;
+ }
+ table#{$parent} { display: table; }
+ tr#{$parent} { display: table-row !important; }
+ th#{$parent},
+ td#{$parent} { display: table-cell !important; }
+}
+
+// [converter] $parent hack
+@mixin responsive-invisibility($parent) {
+ #{$parent} {
+ display: none !important;
+ }
+}
diff --git a/scss/bootstrap/mixins/_size.scss b/scss/bootstrap/mixins/_size.scss
new file mode 100644
index 00000000..abbe2463
--- /dev/null
+++ b/scss/bootstrap/mixins/_size.scss
@@ -0,0 +1,10 @@
+// Sizing shortcuts
+
+@mixin size($width, $height) {
+ width: $width;
+ height: $height;
+}
+
+@mixin square($size) {
+ @include size($size, $size);
+}
diff --git a/scss/bootstrap/mixins/_tab-focus.scss b/scss/bootstrap/mixins/_tab-focus.scss
new file mode 100644
index 00000000..7df0ae7c
--- /dev/null
+++ b/scss/bootstrap/mixins/_tab-focus.scss
@@ -0,0 +1,9 @@
+// WebKit-style focus
+
+@mixin tab-focus() {
+ // Default
+ outline: thin dotted;
+ // WebKit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
diff --git a/scss/bootstrap/mixins/_table-row.scss b/scss/bootstrap/mixins/_table-row.scss
new file mode 100644
index 00000000..13679508
--- /dev/null
+++ b/scss/bootstrap/mixins/_table-row.scss
@@ -0,0 +1,28 @@
+// Tables
+
+@mixin table-row-variant($state, $background) {
+ // Exact selectors below required to override `.table-striped` and prevent
+ // inheritance to nested tables.
+ .table > thead > tr,
+ .table > tbody > tr,
+ .table > tfoot > tr {
+ > td.#{$state},
+ > th.#{$state},
+ &.#{$state} > td,
+ &.#{$state} > th {
+ background-color: $background;
+ }
+ }
+
+ // Hover states for `.table-hover`
+ // Note: this is not available for cells or rows within `thead` or `tfoot`.
+ .table-hover > tbody > tr {
+ > td.#{$state}:hover,
+ > th.#{$state}:hover,
+ &.#{$state}:hover > td,
+ &:hover > .#{$state},
+ &.#{$state}:hover > th {
+ background-color: darken($background, 5%);
+ }
+ }
+}
diff --git a/scss/bootstrap/mixins/_text-emphasis.scss b/scss/bootstrap/mixins/_text-emphasis.scss
new file mode 100644
index 00000000..1101e036
--- /dev/null
+++ b/scss/bootstrap/mixins/_text-emphasis.scss
@@ -0,0 +1,11 @@
+// Typography
+
+// [converter] $parent hack
+@mixin text-emphasis-variant($parent, $color) {
+ #{$parent} {
+ color: $color;
+ }
+ a#{$parent}:hover {
+ color: darken($color, 10%);
+ }
+}
diff --git a/scss/bootstrap/mixins/_text-overflow.scss b/scss/bootstrap/mixins/_text-overflow.scss
new file mode 100644
index 00000000..1593b25e
--- /dev/null
+++ b/scss/bootstrap/mixins/_text-overflow.scss
@@ -0,0 +1,8 @@
+// Text overflow
+// Requires inline-block or block for proper styling
+
+@mixin text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/scss/bootstrap/mixins/_vendor-prefixes.scss b/scss/bootstrap/mixins/_vendor-prefixes.scss
new file mode 100644
index 00000000..df4c1ec8
--- /dev/null
+++ b/scss/bootstrap/mixins/_vendor-prefixes.scss
@@ -0,0 +1,222 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They will be removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+@mixin animation($animation) {
+ -webkit-animation: $animation;
+ -o-animation: $animation;
+ animation: $animation;
+}
+@mixin animation-name($name) {
+ -webkit-animation-name: $name;
+ animation-name: $name;
+}
+@mixin animation-duration($duration) {
+ -webkit-animation-duration: $duration;
+ animation-duration: $duration;
+}
+@mixin animation-timing-function($timing-function) {
+ -webkit-animation-timing-function: $timing-function;
+ animation-timing-function: $timing-function;
+}
+@mixin animation-delay($delay) {
+ -webkit-animation-delay: $delay;
+ animation-delay: $delay;
+}
+@mixin animation-iteration-count($iteration-count) {
+ -webkit-animation-iteration-count: $iteration-count;
+ animation-iteration-count: $iteration-count;
+}
+@mixin animation-direction($direction) {
+ -webkit-animation-direction: $direction;
+ animation-direction: $direction;
+}
+@mixin animation-fill-mode($fill-mode) {
+ -webkit-animation-fill-mode: $fill-mode;
+ animation-fill-mode: $fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+@mixin backface-visibility($visibility){
+ -webkit-backface-visibility: $visibility;
+ -moz-backface-visibility: $visibility;
+ backface-visibility: $visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+@mixin box-shadow($shadow...) {
+ -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
+ box-shadow: $shadow;
+}
+
+// Box sizing
+@mixin box-sizing($boxmodel) {
+ -webkit-box-sizing: $boxmodel;
+ -moz-box-sizing: $boxmodel;
+ box-sizing: $boxmodel;
+}
+
+// CSS3 Content Columns
+@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
+ -webkit-column-count: $column-count;
+ -moz-column-count: $column-count;
+ column-count: $column-count;
+ -webkit-column-gap: $column-gap;
+ -moz-column-gap: $column-gap;
+ column-gap: $column-gap;
+}
+
+// Optional hyphenation
+@mixin hyphens($mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: $mode;
+ -moz-hyphens: $mode;
+ -ms-hyphens: $mode; // IE10+
+ -o-hyphens: $mode;
+ hyphens: $mode;
+}
+
+// Placeholder text
+@mixin placeholder($color: $input-color-placeholder) {
+ // Firefox
+ &::-moz-placeholder {
+ color: $color;
+ opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
+ }
+ &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
+}
+
+// Transformations
+@mixin scale($ratio...) {
+ -webkit-transform: scale($ratio);
+ -ms-transform: scale($ratio); // IE9 only
+ -o-transform: scale($ratio);
+ transform: scale($ratio);
+}
+
+@mixin scaleX($ratio) {
+ -webkit-transform: scaleX($ratio);
+ -ms-transform: scaleX($ratio); // IE9 only
+ -o-transform: scaleX($ratio);
+ transform: scaleX($ratio);
+}
+@mixin scaleY($ratio) {
+ -webkit-transform: scaleY($ratio);
+ -ms-transform: scaleY($ratio); // IE9 only
+ -o-transform: scaleY($ratio);
+ transform: scaleY($ratio);
+}
+@mixin skew($x, $y) {
+ -webkit-transform: skewX($x) skewY($y);
+ -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX($x) skewY($y);
+ transform: skewX($x) skewY($y);
+}
+@mixin translate($x, $y) {
+ -webkit-transform: translate($x, $y);
+ -ms-transform: translate($x, $y); // IE9 only
+ -o-transform: translate($x, $y);
+ transform: translate($x, $y);
+}
+@mixin translate3d($x, $y, $z) {
+ -webkit-transform: translate3d($x, $y, $z);
+ transform: translate3d($x, $y, $z);
+}
+@mixin rotate($degrees) {
+ -webkit-transform: rotate($degrees);
+ -ms-transform: rotate($degrees); // IE9 only
+ -o-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+@mixin rotateX($degrees) {
+ -webkit-transform: rotateX($degrees);
+ -ms-transform: rotateX($degrees); // IE9 only
+ -o-transform: rotateX($degrees);
+ transform: rotateX($degrees);
+}
+@mixin rotateY($degrees) {
+ -webkit-transform: rotateY($degrees);
+ -ms-transform: rotateY($degrees); // IE9 only
+ -o-transform: rotateY($degrees);
+ transform: rotateY($degrees);
+}
+@mixin perspective($perspective) {
+ -webkit-perspective: $perspective;
+ -moz-perspective: $perspective;
+ perspective: $perspective;
+}
+@mixin perspective-origin($perspective) {
+ -webkit-perspective-origin: $perspective;
+ -moz-perspective-origin: $perspective;
+ perspective-origin: $perspective;
+}
+@mixin transform-origin($origin) {
+ -webkit-transform-origin: $origin;
+ -moz-transform-origin: $origin;
+ -ms-transform-origin: $origin; // IE9 only
+ transform-origin: $origin;
+}
+
+
+// Transitions
+
+@mixin transition($transition...) {
+ -webkit-transition: $transition;
+ -o-transition: $transition;
+ transition: $transition;
+}
+@mixin transition-property($transition-property...) {
+ -webkit-transition-property: $transition-property;
+ transition-property: $transition-property;
+}
+@mixin transition-delay($transition-delay) {
+ -webkit-transition-delay: $transition-delay;
+ transition-delay: $transition-delay;
+}
+@mixin transition-duration($transition-duration...) {
+ -webkit-transition-duration: $transition-duration;
+ transition-duration: $transition-duration;
+}
+@mixin transition-timing-function($timing-function) {
+ -webkit-transition-timing-function: $timing-function;
+ transition-timing-function: $timing-function;
+}
+@mixin transition-transform($transition...) {
+ -webkit-transition: -webkit-transform $transition;
+ -moz-transition: -moz-transform $transition;
+ -o-transition: -o-transform $transition;
+ transition: transform $transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+@mixin user-select($select) {
+ -webkit-user-select: $select;
+ -moz-user-select: $select;
+ -ms-user-select: $select; // IE10+
+ user-select: $select;
+}
diff --git a/stylesheets/github-light.css b/stylesheets/github-light.css
deleted file mode 100644
index d64ba5df..00000000
--- a/stylesheets/github-light.css
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-The MIT License (MIT)
-
-Copyright (c) 2015 GitHub, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-*/
-
-.pl-c /* comment */ {
- color: #969896;
-}
-
-.pl-c1 /* constant, markup.raw, meta.diff.header, meta.module-reference, meta.property-name, support, support.constant, support.variable, variable.other.constant */,
-.pl-s .pl-v /* string variable */ {
- color: #0086b3;
-}
-
-.pl-e /* entity */,
-.pl-en /* entity.name */ {
- color: #795da3;
-}
-
-.pl-s .pl-s1 /* string source */,
-.pl-smi /* storage.modifier.import, storage.modifier.package, storage.type.java, variable.other, variable.parameter.function */ {
- color: #333;
-}
-
-.pl-ent /* entity.name.tag */ {
- color: #63a35c;
-}
-
-.pl-k /* keyword, storage, storage.type */ {
- color: #a71d5d;
-}
-
-.pl-pds /* punctuation.definition.string, string.regexp.character-class */,
-.pl-s /* string */,
-.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
-.pl-sr /* string.regexp */,
-.pl-sr .pl-cce /* string.regexp constant.character.escape */,
-.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */,
-.pl-sr .pl-sre /* string.regexp source.ruby.embedded */ {
- color: #183691;
-}
-
-.pl-v /* variable */ {
- color: #ed6a43;
-}
-
-.pl-id /* invalid.deprecated */ {
- color: #b52a1d;
-}
-
-.pl-ii /* invalid.illegal */ {
- background-color: #b52a1d;
- color: #f8f8f8;
-}
-
-.pl-sr .pl-cce /* string.regexp constant.character.escape */ {
- color: #63a35c;
- font-weight: bold;
-}
-
-.pl-ml /* markup.list */ {
- color: #693a17;
-}
-
-.pl-mh /* markup.heading */,
-.pl-mh .pl-en /* markup.heading entity.name */,
-.pl-ms /* meta.separator */ {
- color: #1d3e81;
- font-weight: bold;
-}
-
-.pl-mq /* markup.quote */ {
- color: #008080;
-}
-
-.pl-mi /* markup.italic */ {
- color: #333;
- font-style: italic;
-}
-
-.pl-mb /* markup.bold */ {
- color: #333;
- font-weight: bold;
-}
-
-.pl-md /* markup.deleted, meta.diff.header.from-file */ {
- background-color: #ffecec;
- color: #bd2c00;
-}
-
-.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ {
- background-color: #eaffea;
- color: #55a532;
-}
-
-.pl-mdr /* meta.diff.range */ {
- color: #795da3;
- font-weight: bold;
-}
-
-.pl-mo /* meta.output */ {
- color: #1d3e81;
-}
-
diff --git a/stylesheets/normalize.css b/stylesheets/normalize.css
deleted file mode 100644
index 30366a6e..00000000
--- a/stylesheets/normalize.css
+++ /dev/null
@@ -1,424 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- * user zoom.
- */
-
-html {
- font-family: sans-serif; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
- margin: 0;
-}
-
-/* HTML5 display definitions
- ========================================================================== */
-
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
- display: block;
-}
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-
-audio,
-canvas,
-progress,
-video {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
- */
-
-[hidden],
-template {
- display: none;
-}
-
-/* Links
- ========================================================================== */
-
-/**
- * Remove the gray background color from active links in IE 10.
- */
-
-a {
- background-color: transparent;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-
-abbr[title] {
- border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-
-b,
-strong {
- font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
- background: #ff0;
- color: #000;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sup {
- top: -0.5em;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-
-img {
- border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-
-figure {
- margin: 1em 40px;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
- box-sizing: content-box;
- height: 0;
-}
-
-/**
- * Contain overflow in all browsers.
- */
-
-pre {
- overflow: auto;
-}
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
-/**
- * 1. Correct color not being inherited.
- * Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit; /* 1 */
- font: inherit; /* 2 */
- margin: 0; /* 3 */
-}
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-
-button {
- overflow: visible;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-
-button,
-select {
- text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; /* 2 */
- cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-input {
- line-height: normal;
-}
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- * (include `-moz` to future-proof).
- */
-
-input[type="search"] {
- -webkit-appearance: textfield; /* 1 */ /* 2 */
- box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
- border: 0; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-
-textarea {
- overflow: auto;
-}
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-
-optgroup {
- font-weight: bold;
-}
-
-/* Tables
- ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-td,
-th {
- padding: 0;
-}
diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css
deleted file mode 100644
index b5f20c23..00000000
--- a/stylesheets/stylesheet.css
+++ /dev/null
@@ -1,245 +0,0 @@
-* {
- box-sizing: border-box; }
-
-body {
- padding: 0;
- margin: 0;
- font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 16px;
- line-height: 1.5;
- color: #606c71; }
-
-a {
- color: #1e6bb8;
- text-decoration: none; }
- a:hover {
- text-decoration: underline; }
-
-.btn {
- display: inline-block;
- margin-bottom: 1rem;
- color: rgba(255, 255, 255, 0.7);
- background-color: rgba(255, 255, 255, 0.08);
- border-color: rgba(255, 255, 255, 0.2);
- border-style: solid;
- border-width: 1px;
- border-radius: 0.3rem;
- transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
- .btn + .btn {
- margin-left: 1rem; }
-
-.btn:hover {
- color: rgba(255, 255, 255, 0.8);
- text-decoration: none;
- background-color: rgba(255, 255, 255, 0.2);
- border-color: rgba(255, 255, 255, 0.3); }
-
-@media screen and (min-width: 64em) {
- .btn {
- padding: 0.75rem 1rem; } }
-
-@media screen and (min-width: 42em) and (max-width: 64em) {
- .btn {
- padding: 0.6rem 0.9rem;
- font-size: 0.9rem; } }
-
-@media screen and (max-width: 42em) {
- .btn {
- display: block;
- width: 100%;
- padding: 0.75rem;
- font-size: 0.9rem; }
- .btn + .btn {
- margin-top: 1rem;
- margin-left: 0; } }
-
-.page-header {
- color: #fff;
- text-align: center;
- background-color: #159957;
- background-image: linear-gradient(120deg, #155799, #159957); }
-
-@media screen and (min-width: 64em) {
- .page-header {
- padding: 5rem 6rem; } }
-
-@media screen and (min-width: 42em) and (max-width: 64em) {
- .page-header {
- padding: 3rem 4rem; } }
-
-@media screen and (max-width: 42em) {
- .page-header {
- padding: 2rem 1rem; } }
-
-.project-name {
- margin-top: 0;
- margin-bottom: 0.1rem; }
-
-@media screen and (min-width: 64em) {
- .project-name {
- font-size: 3.25rem; } }
-
-@media screen and (min-width: 42em) and (max-width: 64em) {
- .project-name {
- font-size: 2.25rem; } }
-
-@media screen and (max-width: 42em) {
- .project-name {
- font-size: 1.75rem; } }
-
-.project-tagline {
- margin-bottom: 2rem;
- font-weight: normal;
- opacity: 0.7; }
-
-@media screen and (min-width: 64em) {
- .project-tagline {
- font-size: 1.25rem; } }
-
-@media screen and (min-width: 42em) and (max-width: 64em) {
- .project-tagline {
- font-size: 1.15rem; } }
-
-@media screen and (max-width: 42em) {
- .project-tagline {
- font-size: 1rem; } }
-
-.main-content :first-child {
- margin-top: 0; }
-.main-content img {
- max-width: 100%; }
-.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 {
- margin-top: 2rem;
- margin-bottom: 1rem;
- font-weight: normal;
- color: #159957; }
-.main-content p {
- margin-bottom: 1em; }
-.main-content code {
- padding: 2px 4px;
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
- font-size: 0.9rem;
- color: #383e41;
- background-color: #f3f6fa;
- border-radius: 0.3rem; }
-.main-content pre {
- padding: 0.8rem;
- margin-top: 0;
- margin-bottom: 1rem;
- font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace;
- color: #567482;
- word-wrap: normal;
- background-color: #f3f6fa;
- border: solid 1px #dce6f0;
- border-radius: 0.3rem; }
- .main-content pre > code {
- padding: 0;
- margin: 0;
- font-size: 0.9rem;
- color: #567482;
- word-break: normal;
- white-space: pre;
- background: transparent;
- border: 0; }
-.main-content .highlight {
- margin-bottom: 1rem; }
- .main-content .highlight pre {
- margin-bottom: 0;
- word-break: normal; }
-.main-content .highlight pre, .main-content pre {
- padding: 0.8rem;
- overflow: auto;
- font-size: 0.9rem;
- line-height: 1.45;
- border-radius: 0.3rem; }
-.main-content pre code, .main-content pre tt {
- display: inline;
- max-width: initial;
- padding: 0;
- margin: 0;
- overflow: initial;
- line-height: inherit;
- word-wrap: normal;
- background-color: transparent;
- border: 0; }
- .main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after {
- content: normal; }
-.main-content ul, .main-content ol {
- margin-top: 0; }
-.main-content blockquote {
- padding: 0 1rem;
- margin-left: 0;
- color: #819198;
- border-left: 0.3rem solid #dce6f0; }
- .main-content blockquote > :first-child {
- margin-top: 0; }
- .main-content blockquote > :last-child {
- margin-bottom: 0; }
-.main-content table {
- display: block;
- width: 100%;
- overflow: auto;
- word-break: normal;
- word-break: keep-all; }
- .main-content table th {
- font-weight: bold; }
- .main-content table th, .main-content table td {
- padding: 0.5rem 1rem;
- border: 1px solid #e9ebec; }
-.main-content dl {
- padding: 0; }
- .main-content dl dt {
- padding: 0;
- margin-top: 1rem;
- font-size: 1rem;
- font-weight: bold; }
- .main-content dl dd {
- padding: 0;
- margin-bottom: 1rem; }
-.main-content hr {
- height: 2px;
- padding: 0;
- margin: 1rem 0;
- background-color: #eff0f1;
- border: 0; }
-
-@media screen and (min-width: 64em) {
- .main-content {
- max-width: 64rem;
- padding: 2rem 6rem;
- margin: 0 auto;
- font-size: 1.1rem; } }
-
-@media screen and (min-width: 42em) and (max-width: 64em) {
- .main-content {
- padding: 2rem 4rem;
- font-size: 1.1rem; } }
-
-@media screen and (max-width: 42em) {
- .main-content {
- padding: 2rem 1rem;
- font-size: 1rem; } }
-
-.site-footer {
- padding-top: 2rem;
- margin-top: 2rem;
- border-top: solid 1px #eff0f1; }
-
-.site-footer-owner {
- display: block;
- font-weight: bold; }
-
-.site-footer-credits {
- color: #819198; }
-
-@media screen and (min-width: 64em) {
- .site-footer {
- font-size: 1rem; } }
-
-@media screen and (min-width: 42em) and (max-width: 64em) {
- .site-footer {
- font-size: 1rem; } }
-
-@media screen and (max-width: 42em) {
- .site-footer {
- font-size: 0.9rem; } }