text:
/*--
Author: W3layouts
Author URL: http://w3layouts.com
License: Creative Commons Attribution 3.0 Unported
License URL: http://creativecommons.org/licenses/by/3.0/
--*/

body {
	margin: 0;
	padding: 0;
	background: #fff;
	font-family: 'Open Sans', sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-family: 'Open Sans', sans-serif;
}

p {
	margin: 0;
	letter-spacing: 1px;
}

ul {
	margin: 0;
	padding: 0;
}

p,
ul,
ol {
	font-size: 14px;
}

input[type="submit"],
a,
.nbs-flexisel-nav-left,
.nbs-flexisel-nav-right {
	transition: .5s ease-in;
	-webkit-transition: .5s ease-in;
	-moz-transition: .5s ease-in;
	-o-transition: .5s ease-in;
	-ms-transition: .5s ease-in;
}

a:hover {
	text-decoration: none;
}

a:focus {
	outline: none;
	text-decoration: none;
}

/*-- /w3_agileits_top_nav  --*/

.wthree_agile_admin_info {
	position: relative;
}

li.second.admin-pic img {
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	-o-border-radius: 50%;
	margin-top: 6px;
	width: 85%;
	margin-left: -4px;
	box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
	-webkit-box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
	-moz-box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
	-o-box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}

li.second.logo h1 {
	font-size: 2em;
	text-transform: uppercase;
	font-weight: 700;
	line-height: 59px;
	letter-spacing: 1px;
	text-shadow: 4px 4px 2px rgb(7, 70, 121);
	-weblit-text-shadow: 4px 4px 2px rgb(7, 70, 121);
	-moz-text-shadow: 4px 4px 2px rgb(7, 70, 121);
	-o-text-shadow: 4px 4px 2px rgb(7, 70, 121);
	-ms-text-shadow: 4px 4px 2px rgb(7, 70, 121);
	position: relative;
}

li.second.logo i.fa.fa-graduation-cap {
	position: absolute;
	left: -4px;
	top: 6px;
	font-size: 17px;
	text-shadow: none;
	display: none;
}

/*--- User Panel---*/

.dropdown-menu {
	box-shadow: 2px 3px 4px rgba(0, 0, 0, .175);
	-webkit-box-shadow: 2px 3px 4px rgba(0, 0, 0, .175);
	-moz-box-shadow: 2px 3px 4px rgba(0, 0, 0, .175);
	border-radius: 0;
}

li.dropdown.head-dpdn {
	display: inline-block;
	padding: 6px 10px 0px 10px;
	float: left;
}

ul.dropdown-menu li {
	margin-left: 0;
	width: 100%;
	padding: 0;
	background: #fff;
}

.user-panel-top ul {
	padding-left: 0;
}

.user-panel-top li {
	float: left;
	margin-left: 15px;
	position: relative;
}

.user-panel-top li span.digit {
	font-size: 11px;
	font-weight: bold;
	color: #FFF;
	background: #e64c65;
	line-height: 20px;
	width: 20px;
	height: 20px;
	border-radius: 2em;
	-webkit-border-radius: 2em;
	-moz-border-radius: 2em;
	-o-border-radius: 2em;
	text-align: center;
	display: inline-block;
	position: absolute;
	top: -3px;
	right: -10px;
}

.user-panel-top li:first-child {
	margin-left: 0;
}

.sidebar .nav-second-level li a.active,
.sidebar ul li a.active {
	color: #F2B33F;
}

li.active a i,
.act a i {
	color: #F2B33F;
}

.custom-nav>li.act>a,
.custom-nav>li.act>a:hover,
.custom-nav>li.act>a:focus {
	background-color: #353f4f;
	color: #8BC34A;
}

.user-panel-top li a {
	display: block;
	padding: 5px;
	text-decoration: none;
}

li.dropdown.head-dpdn i {
	color: #fff;
	font-size: 20px;
}

.user-panel-top li a:hover {
	border-color: rgba(101, 124, 153, 0.93);
}

.user-panel-top li a i {
	width: 24px;
	height: 24px;
	display: block;
	text-align: center;
	line-height: 25px;
}

.user-panel-top li a i span {
	font-size: 15px;
	color: #FFF;
}

.user-panel-top li a.user {
	background: #667686;
}

.user-panel-top li span.green {
	background: #a88add;
}

.user-panel-top li span.red {
	background: #b8c9f1;
}

.user-panel-top li span.yellow {
	background: #bdc3c7;
}

.profile_details ul li ul.dropdown-menu.drp-mnu {
	padding: 1em;
	min-width: 190px;
	top: 122%;
	left: 0%;
}

ul.top_dp_agile {
	position: relative;
}

.dropdown-menu>li>a {
	display: block;
	padding: 6px 20px;
	clear: both;
	color: #080808;
	white-space: nowrap;
	letter-spacing: 1px;
}

.dropdown-menu>li>a:hover,
.dropdown-menu>li>a:focus {
	color: #111 !important;
	text-decoration: none;
	background-color: #d7e4ef;
}

ul.dropdown-menu.drp-mnu i {
	color: #007ee5;
}

.badge.blue {
	font-size: 12px;
	font-weight: bold;
	color: #FFF;
	background: #e53238;
	line-height: 15px;
	width: 20px;
	height: 20px;
	border-radius: 2em;
	-webkit-border-radius: 2em;
	-moz-border-radius: 2em;
	-o-border-radius: 2em;
	text-align: center;
	display: inline-block;
	position: absolute;
	top: -13%;
	padding: 2px 0 0;
	left: 57%;
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	-o-border-radius: 50%;
}

li.second.top_bell_nav {
	padding: 0 2em;
	padding-top: 14px;
}

.dropdown-menu {
	position: absolute;
	top: 159%;
	left: 0;
	z-index: 1000;
	display: none;
	float: left;
	min-width: 150px;
	padding: 5px 0;
	margin: 2px 0 0;
	font-size: 14px;
	text-align: left;
	list-style: none;
	background-color: #fff;
	-webkit-background-clip: padding-box;
	background-clip: padding-box;
	border: 1px solid #ccc;
	border: 1px solid rgba(0, 0, 0, .15);
	border-radius: 0px !important;
	-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
	box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}

ul.dropdown-menu.drp-mnu {
	max-width: 150px !important;
	position: absolute;
	top: 117%;
	left: 0;
}

li.second.top_bell_nav ul.dropdown-menu {
	width: 365px !important;
}

.user_img {
	float: left;
	width: 19%;
}

.notification_desc {
	float: left;
	width: 70%;
	margin-left: 5%;
}

.user_img img {
	max-width: 100%;
	display: block;
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	-o-border-radius: 50%;
	box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
	-webkit-box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
	-moz-box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
	-o-box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}

.notification_desc h6 {
	font-size: 1em;
	text-transform: uppercase;
	font-weight: 600;
	color: #131415;
	margin: 10px 0;
}

.notification_desc p {
	font-size: 0.9em;
	color: #888;
	margin-bottom: 1em;
}

.notification_desc p span {
	background: #007ee5;
	color: #fff;
	padding: 4px 11px;
	font-size: 0.85em;
	border-radius: 11px;
}

.notification_header {
	padding: 2em 2em;
}

.notification_header h3 {
	font-size: 1.4em;
	color: #000;
	font-weight: bold;
	letter-spacing: 1px;
}

li.second.top_bell_nav.dropdown-menu>li>a:hover,
li.second.top_bell_nav .dropdown-menu>li>a:focus {
	background-color: #fff;
}

.notification_bottom {
	background: #e53238;
	text-align: center;
	padding: 8px 0;
}

.notification_bottom a {
	letter-spacing: 2px;
	font-size: 1.1em;
	font-weight: 600;
}

/*--Progress bars--*/

.progress {
	height: 10px;
	margin: 7px 0;
	overflow: hidden;
	background: #e1e1e1;
	z-index: 1;
	cursor: pointer;
	border-radius: 0px !important;
}

.task-info .percentage {
	float: right;
	height: inherit;
	line-height: inherit;
}

.task-desc {
	font-size: 12px;
}

.wrapper-dropdown-3 .dropdown li a:hover span.task-desc {
	color: #65cea7;
}

.progress .bar {
	z-index: 2;
	height: 15px;
	font-size: 12px;
	color: white;
	text-align: center;
	float: left;
	-webkit-box-sizing: content-box;
	-moz-box-sizing: content-box;
	-ms-box-sizing: content-box;
	box-sizing: content-box;
	-webkit-transition: width 0.6s ease;
	-moz-transition: width 0.6s ease;
	-o-transition: width 0.6s ease;
	transition: width 0.6s ease;
}

.progress-striped .yellow {
	background: #f0ad4e;
}

.progress-striped .green {
	background: #5cb85c;
}

.progress-striped .light-blue {
	background: #4F52BA;
}

.progress-striped .red {
	background: #d9534f;
}

.progress-striped .blue {
	background: #428bca;
}

.progress-striped .orange {
	background: #e94e02;
}

.progress-striped .bar {
	background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
	background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
	background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
	background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
	background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
	-webkit-background-size: 40px 40px;
	-moz-background-size: 40px 40px;
	-o-background-size: 40px 40px;
	background-size: 40px 40px;
}

.progress.active .bar {
	-webkit-animation: progress-bar-stripes 2s linear infinite;
	-moz-animation: progress-bar-stripes 2s linear infinite;
	-ms-animation: progress-bar-stripes 2s linear infinite;
	-o-animation: progress-bar-stripes 2s linear infinite;
	animation: progress-bar-stripes 2s linear infinite;
}

@-webkit-keyframes progress-bar-stripes {
	from {
		background-position: 40px 0;
	}
	to {
		background-position: 0 0;
	}
}

@-moz-keyframes progress-bar-stripes {
	from {
		background-position: 40px 0;
	}
	to {
		background-position: 0 0;
	}
}

@-ms-keyframes progress-bar-stripes {
	from {
		background-position: 40px 0;
	}
	to {
		background-position: 0 0;
	}
}

@-o-keyframes progress-bar-stripes {
	from {
		background-position: 0 0;
	}
	to {
		background-position: 40px 0;
	}
}

@keyframes progress-bar-stripes {
	from {
		background-position: 40px 0;
	}
	to {
		background-position: 0 0;
	}
}

/*--Progress bars--*/

.full-screen {
	float: left;
}

.full-screen button {
	border: none;
	outline: none;
	color: #fff;
	font-size: .85em;
	background: #096dbf;
	width: 40px;
	height: 40px;
	text-align: center;
	line-height: 1px;
}

li.second.full-screen {
	padding: 10px 16px;
}

li.second.w3l_search input[type="search"] {
	outline: none;
	padding: 10px;
	color: #888;
	font-size: 15px;
	width: 85%;
	border: ridge 1px #ffffff;
	background: #ffffff;
	float: left;
	height: 41px;
	letter-spacing: 1px;
	font-weight: 400;
}

li.second.w3l_search button.btn.btn-default {
	outline: none;
	padding: 10px 0 11px;
	width: 15%;
	position: relative;
	background: #e53238;
	border: solid 1px #e53238;
	border-radius: 0;
	color: #fff;
}

/* placeholder */

li.second.w3l_search input::-webkit-input-placeholder {
	color: #777 !important;
}

li.second.w3l_search input::-moz-placeholder {
	color: #777 !important;
}

li.second.w3l_search input:-moz-placeholder {
	color: #777 !important;
}

li.second.w3l_search input:-ms-input-placeholder {
	color: #777 !important;
}

/*-- //w3_agileits_top_nav  --*/

/*--inner_content --*/

.inner_content {
	padding: 4em 4em;
}

/*-- /agile_top_w3_post_sections --*/

.img_wthee_post {
	background: url(../images/pic.jpg)no-repeat center;
	background-size: cover;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	-ms-background-size: cover;
	min-height: 420px;
	padding: 5em 3em 4em 3em;
}

.img_wthee_post1 {
	background: url(../images/pic1.jpg)no-repeat center;
	background-size: cover;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	-ms-background-size: cover;
	min-height: 482px;
	padding: 3em 3em;
}

.agile_top_w3_post_info {
	width: 49%;
	margin-left: 1%;
}

.agile_info_shadow {
	padding: 1em;
	box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-webkit-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-moz-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-o-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	border: 1px solid #ddd;
}

.count_info {
	float: left;
}

h4.count {
	font-size: 1.5em;
	color: #fff;
	letter-spacing: 1px;
	font-weight: 600;
}

h3.w3_inner_tittle.two {
	color: #000;
	font-weight: 600;
}

p.text-no {
	color: #fff;
	font-size: 1.1em;
	background: #e53238;
	padding: 5px 21px;
	border-radius: 30px;
	-webkit-border-radius: 30px;
	-o-border-radius: 30px;
	-ms-border-radius: 30px;
	-moz-border-radius: 30px;
	text-align: center;
	font-weight: 600;
}

.year-info {
	float: right;
}

span.year {
	font-size: 1em;
	font-weight: 400;
	display: block;
	background: none;
	color: rgb(205, 209, 212);
	text-align: center;
	letter-spacing: 1px;
	margin: 0.5em 0;
}

.stats-wrap {
	margin-bottom: 1.1em;
}

.stats-wrap:nth-child(4) {
	margin-bottom: 0;
}

.agile_top_w3_post_sections {
	margin: 2em 0;
}

h3.w3_inner_tittle {
	text-transform: uppercase;
	color: #fff;
	margin: 0.5em 0 1em 0;
	font-weight: 800;
	font-size: 1.4em;
	letter-spacing: 1px;
}

.inner_content_w3_agile_info {
	margin-top: 4.5em;
}

.inner_content_w3_agile_info.two_in {
	margin-top: 4em;
}

.chart_agile.agile_info_shadow {
	padding: 1em 2em;
	margin: 0;
}

/*-- //agile_top_w3_post_sections --*/

/*-- /chart--*/

.top_chart {
	display: inline-block;
	float: left;
	width: 49%;
	padding: 2em;
}

.top_chart canvas {
	max-width: 100% !important;
}

canvas#chart0 {
	height: 315px !important;
}

canvas#chart1 {
	height: 315px !important;
}

.top_chart:nth-child(2) {
	margin-left: 1%;
	float: right;
}

/*-- count-down --*/

.main-example {
	text-align: center;
	margin: 10em 4em 0 4em;
}

/*-- //chart--*/

#chartdiv1 {
	width: 100%;
	height: 500px;
}

/*-- /cir_agile_info--*/

.w3ls_agile_circle_progress.agile_info_shadow {
	padding: 1em 1em;
	margin: 2em 0;
}

.progress-bar.position {
	float: left;
	width: 25%;
	background: none;
	box-shadow: none;
	font-family: 'Open Sans', sans-serif !important;
	margin-top: 2em;
}

.cir_agile_info {
	background: url(../images/progress.jpg)no-repeat center;
	background-size: cover;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	-ms-background-size: cover;
	min-height: 420px;
	padding: 3em 5em;
}

/*-- //cir_agile_info--*/

/*-- /w3ls_agile_cylinder--*/

.w3ls_agile_cylinder.chart.agile_info_shadow {
	padding: 3em 3em;
}

#chartdiv {
	width: 100%;
	height: 450px;
}

/*-- //w3ls_agile_cylinder--*/

/*-- /socail_grid_agile--*/

.socail_grid_agile {
	padding: 2em 2em;
}

.socail_grid_agile.facebook {
	background: #3d5da2;
}

.socail_grid_agile.twitter {
	background: #1da1f2;
}

.socail_grid_agile.gmail {
	background: #ea4335;
}

.socail_grid_agile.gmail {
	background: #ea4335;
}

.socail_grid_agile.gmail {
	background: #ea4335;
}

.socail_grid_agile.dribble {
	background: #ea4c89;
}

.socail_grid_agile ul li {
	list-style: none;
	display: inline-block;
	color: #fff;
	letter-spacing: 1px;
}

ul.icon_w3_info {
	float: left;
}

ul.icon_w3_social {
	float: right;
}

.socail_grid_agile.facebook i,
.socail_grid_agile.twitter i,
.socail_grid_agile.gmail i,
.socail_grid_agile.dribble i {
	width: 26px;
	height: 26px;
	background: #314c88;
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-o-border-radius: 50%;
	-moz-border-radius: 50%;
	text-align: center;
	line-height: 27px;
	font-size: 12px;
	color: #fff;
}

.socail_grid_agile.twitter i {
	background: #0588d8;
}

.socail_grid_agile.gmail i {
	background: #d62718;
}

.socail_grid_agile.dribble i {
	background: #de2b70;
}

.agile_w3l_social_media_text_img {
	float: left;
}

.agile_w3l_social_media_text_img img {
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-o-border-radius: 50%;
	-moz-border-radius: 50%;
}

.bottom_info_social {
	margin-top: 2em;
}

.agile_w3l_social_media_text h4 {
	text-transform: uppercase;
	color: #fff;
	font-size: 1.4em;
	font-weight: 300;
	letter-spacing: 1px;
}

.agile_w3l_social_media_text p {
	color: #fff;
	font-size: 1em;
	line-height: 1.9em;
	padding: 0;
	margin-top: 0.5em;
	font-weight: 600;
}

/*-- //socail_grid_agile--*/

.profile-main {
	width: 32%;
	margin-right: 1.3%;
	padding: 1em;
	box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-webkit-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-moz-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-o-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	border: 1px solid #ddd;
}

.bottom_agileits_grids {
	margin: 2em 0;
}

.profile-pic {
	padding: 2.5em 2em 2em;
	text-align: center;
}

.profile-pic img {
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-o-border-radius: 50%;
	-moz-border-radius: 50%;
	box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-webkit-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-moz-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-o-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	display: inline-block;
	border: 1px solid #e8e5e5;
	width: 30%;
}

.profile-pic h2 {
	font-size: 1.3em;
	color: #fff;
	margin-bottom: 1em;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.profile-pic p {
	font-size: 0.9em;
	color: #fff;
	margin-top: 1em;
	letter-spacing: 5px;
}

.profile-ser {
	padding: 0em 1em 2em;
}

.profile-ser-grids {
	float: left;
	width: 33%;
	text-align: center;
}

.profile-ser-grids.no-border {
	border: none;
}

.profile-ser-grids h3 {
	color: #fff;
	font-size: 14px;
	letter-spacing: .5px;
	text-transform: uppercase;
	margin-bottom: 6px;
	font-weight: 700;
}

.profile-ser-grids h4 {
	font-size: 14px;
	color: #aad1f1;
	font-weight: 400;
	letter-spacing: 1px;
}

.follow-btn a {
	font-size: 1em;
	color: #fff;
	background: #11B771;
	padding: 0.5em 2.5em;
	display: inline-block;
	margin-top: 2em;
	border-radius: 3px 3px;
}

.follow-btn a:hover {
	background: #3B3A3A;
}

.w3l_social_icons {
	margin-top: 1em;
	margin: 2em auto 0;
	text-align: center;
}

.w3l_social_icons li a i {
	text-align: center;
	font-size: 13px;
	line-height: 29px;
	color: #fff;
}

.w3l_social_icons li {
	display: inline-block;
	list-style: none;
	width: 32px;
	height: 32px;
	margin: 6px 9px;
}

.two li {
	margin: 6px 10px;
}

.w3l_social_icons li {
	background: transparent;
	border: 2px solid #f1ecec;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	-o-border-radius: 50%;
	-ms-border-radius: 50%;
}

.w3l_social_icons li:hover a i {
	color: #fff !important;
}

.w3l_social_icons li:nth-child(3):hover {
	border: 2px solid #dd4b39;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	background: #dd4b39;
}

.w3l_social_icons li:nth-child(2):hover {
	border: 2px solid #1da1f2;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	background: #1da1f2;
}

.w3l_social_icons li:nth-child(1):hover {
	border: 2px solid #3b5998;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	background: #3b5998;
}

.profile_bg_agile {
	background: url(../images/profile_bg.jpg)no-repeat center;
	background-size: cover;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	-ms-background-size: cover;
	min-height: 420px;
}

#chartdiv1 {
	width: 100%;
	height: 368px;
}

.progress-bar1 {
	float: left;
	width: 0;
	height: 100%;
	font-size: 12px;
	line-height: 20px;
	color: #fff;
	text-align: center;
	background-color: #337ab7;
	-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
	-webkit-transition: width .6s ease;
	-o-transition: width .6s ease;
	transition: width .6s ease;
}

/*--moveing effect prograce bars--*/

.bar_group__bar.thin::before {
	display: block;
	content: '';
	position: absolute;
	z-index: -1;
}

.bar_group__bar.thin::before {
	width: 100%;
	height: 5px;
	border-radius: 0px;
	background: #E4E4E4;
}

.bar_group__bar.thin {
	width: 0%;
	height: 5px;
	border-radius: 0px;
	background: #232425;
	margin-bottom: 10px;
	-webkit-transition: width 1s;
	transition: width 1s;
}

.b_label,
.bar_label_min,
.bar_label_max,
.b_tooltip span {
	color: #007ee5;
	font-size: 15px;
	margin: .5em 0;
	font-weight: 600;
}

.bar_group.group_ident-1 {
	padding-right: 0em;
	z-index: 0;
	position: relative;
}

.bar_label_max {
	position: absolute;
	right: 0%;
}

.bar_label_min {
	position: absolute;
}

.b_tooltip {
	-webkit-transition: all 1s;
	transition: all 1s;
	position: relative;
	float: left;
	left: 100%;
	padding: 4px 10px 7px 10px;
	background-color: rgb(229, 50, 56);
	-webkit-transform: translateX(-50%) translateY(-30px);
	-ms-transform: translateX(-50%) translateY(-30px);
	transform: translateX(-50%) translateY(-30px);
	-o-transform: translateX(-50%) translateY(-30px);
	border-radius: 0px;
	line-height: 11px;
}

.b_tooltip span {
	color: white;
}

.b_tooltip--tri {
	width: 0;
	height: 0;
	position: absolute;
	content: '';
	bottom: -5px;
	left: 0;
	right: 0;
	margin: auto;
	display: block;
	border-style: solid;
	border-width: 5px 5px 0 5px;
	border-color: rgb(229, 50, 56)transparent transparent transparent;
}

.bars_agileits.agile_info_shadow {
	padding: 2em;
	width: 49%;
	margin-right: 1%;
}

.fallowers_agile.agile_info_shadow {
	padding: 2em;
}

.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: 9px;
}

/*-- /weather --*/

.weather_w3_inner_info ul li {
	display: inline-block;
	text-align: center;
	width: 13%;
	margin-top: 2em;
}

.weather_w3_inner_info ul li:nth-child(1) figure.icons {
	float: none;
	width: 100%;
}

.weather_w3_inner_info h3 {
	font-size: 1.5em;
	color: #fff;
}

figure.icons,
.weather-text {
	float: left;
	width: 50%;
}

.weather_w3_inner_info h4 {
	font-size: 1.2em;
	color: #fff;
	font-weight: 600;
	letter-spacing: 1px;
}

.weather_w3_inner_info h5 {
	font-size: 1em;
	color: #fff;
	margin-top: 0.5em;
	letter-spacing: 1px;
}

.weather_w3_inner_info {
	background: url(../images/bottom.jpg)no-repeat center;
	background-size: cover;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	-ms-background-size: cover;
	min-height: 300px;
	background-attachment: fixed;
}

.social_media_w3ls {
	margin-top: 2em;
}

.weather_w3_inner_info ul {
	margin: 0 auto;
	text-align: center;
}

.over_lay_agile {
	background: url(../images/overlay.png)repeat;
	padding: 3em 3em 7.5em 3em;
}

/*-- //weather --*/

/*-- inner_content --*/

.w3l_agileits_breadcrumbs {
	padding: 1em 0;
	background: #f5f5f5;
}

.w3l_agileits_breadcrumbs ul li {
	display: inline-block;
	color: #212121;
	font-weight: 600;
	font-family: 'Open Sans', sans-serif;
	letter-spacing: 1px;
}

.w3l_agileits_breadcrumbs ul li a {
	color: #e53238;
	text-decoration: none;
	font-family: 'Open Sans', sans-serif;
}

.w3l_agileits_breadcrumbs ul li a:hover {
	color: #212121;
}

.w3l_agileits_breadcrumbs ul li span {
	padding: 0 2em;
}

.w3l_agileits_breadcrumbs_inner {
	padding: 0 2em;
}

h2.w3_inner_tittle {
	text-transform: uppercase;
	color: #000;
	margin: 0.5em 0 1em 0;
	font-weight: 700;
	font-size: 1.8em;
	letter-spacing: 1px;
}

/*-- /chart-page --*/

/*-- /maps --*/

.agile_map_info iframe {
	width: 100%;
	min-height: 400px;
}

#map,
.map-canvas {
	width: 100%;
	height: 400px;
}

.agile_map_info.two.agile_info_shadow {
	margin: 2em 0;
}

.agile_map_info.third.agile_info_shadow {
	margin-bottom: 2em;
}

/*-- //maps --*/

/*-- /faqs --*/

.questions h5 {
	color: #000;
	font-size: 1.3em;
	line-height: 1.6em;
}

.questions p {
	font-size: 1em;
	color: #888;
	padding: 1em 0;
	line-height: 2.3em;
}

.demo-grid code {
	padding: 6px 4px;
	font-size: 90%;
	color: #fff;
	background: none !important;
	font-size: 1.2em;
}

/*-- //faqs --*/

/*-- //faq --*/

#chartdiv3 {
	width: 100%;
	height: 500px;
	font-size: 12px;
}

#chartdiv4 {
	width: 100%;
	height: 400px;
	font-size: 12px;
}

#chartdiv5 {
	width: 100%;
	height: 400px;
	font-size: 12px;
}

#chartdiv6 {
	width: 100%;
	height: 400px;
	font-size: 12px;
}

#chartdiv7 {
	width: 100%;
	height: 400px;
	font-size: 12px;
}

#chartdiv8 {
	width: 100%;
	height: 400px;
	font-size: 12px;
}

#chartdiv9 {
	width: 100%;
	height: 400px;
	font-size: 12px;
}

.charts_agile_w3ls.agile_info_shadow,
.asked.agile_info_shadow,
.blank-page.agile_info_shadow,
.agile3-grids.agile_info_shadow {
	padding: 2em;
}

.chart_agile {
	margin: 2em 0;
}

.blank_w3ls_agile p {
	line-height: 2.3em;
	color: #888;
}

.blank_w3ls_agile {
	padding-bottom: 10em;
}

/*-- //chart-page --*/

.demo-grid {
	background: #1e2021;
	border: 1px solid #212123;
	padding: 10px 0;
}

.mb40 {
	margin-bottom: 40px !important;
}

.sub_agile.mtn p.mb15 code {
	padding: 0;
	background: none;
	color: #999;
	font-size: 1em;
}

/*-- /buttons --*/

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

.button_set_one.agile_info_shadow:nth-child(2) {
	float: right;
	width: 49%;
}

.button_set_one.two .btn {
	margin: 0 0.5em;
	border-radius: 4px;
	-webkit-border-radius: 4px;
	-o-border-radius: 4px;
	-ms-border-radius: 4px;
}

.button_set_one.three .btn {
	margin: 0 10px;
	color: #fff;
	padding: 9px 35px;
}

.btn-pri {
	position: relative;
	padding-left: 40px;
}

.btn-pri i {
	background: rgba(0, 0, 0, 0.1);
	left: -1px;
	margin-right: 0px;
	padding: 13px 10px;
	position: absolute;
	top: -1px;
}

.button_set_one.three.one .btn {
	border-radius: 20px;
	-webkit-border-radius: 20px;
	-o-border-radius: 20px;
	-ms-border-radius: 20px;
}

.button_set_one.three.one .btn i {
	background: none;
}

.buttons_w3ls_agile {
	margin-bottom: 2em;
}

.mtn {
	margin-top: 0 !important;
}

.panel-heading+.panel-body {
	border-top: 0;
}

#content .panel .panel-body {
	border: 0;
	margin-top: 30px;
}

#content .panel .panel-heading+.panel-body {
	margin-top: 0px;
}

.mb15 {
	margin: 7px 0 !important;
}

.bs-component {
	position: relative;
}

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

.btn-dark {
	color: #fff;
	background-color: #2a3342;
}

.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
	cursor: not-allowed;
	pointer-events: none;
	opacity: 0.65;
	filter: alpha(opacity=65);
	-webkit-box-shadow: none;
	box-shadow: none;
}

.btn-dark.disabled,
.btn-dark[disabled],
fieldset[disabled] .btn-dark,
.btn-dark.disabled:hover,
.btn-dark[disabled]:hover,
fieldset[disabled] .btn-dark:hover,
.btn-dark.disabled:focus,
.btn-dark[disabled]:focus,
fieldset[disabled] .btn-dark:focus,
.btn-dark.disabled:active,
.btn-dark[disabled]:active,
fieldset[disabled] .btn-dark:active,
.btn-dark.disabled.active,
.btn-dark[disabled].active,
fieldset[disabled] .btn-dark.active {
	background-color: #2a3342;
	border-color: #2a3342;
}

.btn-system {
	color: #fff;
	background-color: #6852b2;
}

.btn-system:hover,
.btn-system:focus,
.btn-system:active,
.btn-system.active,
.open>.dropdown-toggle.btn-system {
	color: #fff;
	background-color: #2a3342;
	border-color: rgba(0, 0, 0, 0.05);
}

#source-button {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 100;
	font-weight: 600;
}

.btn-dark.btn-dark:hover,
.btn-dark.btn-dark:focus,
.btn-dark.btn-dark:active,
.btn-dark.btn-dark.active {
	background-color: #11a8bb;
}

.btn-dark:hover,
.btn-dark:focus,
.btn-dark:active,
.btn-dark.active,
.open>.dropdown-toggle.btn-dark {
	color: #fff;
	background-color: #2a3342;
	border-color: rgba(0, 0, 0, 0.05);
}

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

.btn-xs,
.btn-group-xs>.btn {
	padding: 8px 8px;
	font-size: 11px;
	line-height: 1.5;
	border-radius: 3px;
}

.btn-sm,
.btn-group-sm>.btn {
	padding: 8px 8px;
	font-size: 15px;
	line-height: 1.5;
	border-radius: 3px;
}

.btn-group-lg>.btn,
.btn-lg,
.btn-group-lg>.btn {
	width: 105px;
	font-size: 1em;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open>.dropdown-toggle.btn-primary {
	color: #fff;
	background-color: #2a3342;
	border-color: rgba(0, 0, 0, 0.05);
}

.sub_agile_btn.agile_info_shadow,
.agile-validation.agile_info_shadow,
.w3l-table-info.agile_info_shadow,
.page_w3ls_cal,
.agile_info_icons_wthree {
	padding: 2em;
}

.sub_agile.mtn {
	margin: 0 auto;
	width: 50%;
}

.sub_agile_btn.agile_info_shadow:nth-child(2) {
	width: 31%;
	margin: 0% 1%;
}

.toggle {
	position: relative;
	display: inline-block;
	width: 40px;
	height: 60px;
	background-color: #bbb;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	text-align: center;
}

.toggle input {
	width: 100%;
	height: 100%;
	margin: 0 0;
	padding: 0 0;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	cursor: pointer;
	opacity: 0;
	filter: alpha(opacity=0);
}

.toggle label {
	display: block;
	position: absolute;
	top: 1px;
	right: 1px;
	bottom: 1px;
	left: 1px;
	background-image: -webkit-linear-gradient(top, #fff 0%, #ddd 50%, #fff 50%, #eee 100%);
	background-image: -moz-linear-gradient(top, #fff 0%, #ddd 50%, #fff 50%, #eee 100%);
	background-image: -ms-linear-gradient(top, #fff 0%, #ddd 50%, #fff 50%, #eee 100%);
	background-image: -o-linear-gradient(top, #fff 0%, #ddd 50%, #fff 50%, #eee 100%);
	background-image: linear-gradient(top, #fff 0%, #ddd 50%, #fff 50%, #eee 100%);
	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.4), inset 0 -1px 1px #888, inset 0 -5px 1px #bbb, inset 0 -6px 0 white;
	-moz-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.4), inset 0 -1px 1px #888, inset 0 -5px 1px #bbb, inset 0 -6px 0 white;
	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.4), inset 0 -1px 1px #888, inset 0 -5px 1px #bbb, inset 0 -6px 0 white;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	font: normal 11px Arial, Sans-Serif;
	color: #666;
	text-shadow: 0 1px 0 white;
	cursor: text;
}

.toggle label:before {
	content: attr(data-off);
	position: absolute;
	top: 6px;
	right: 0;
	left: 0;
	z-index: 4;
}

.toggle label:after {
	content: attr(data-on);
	position: absolute;
	right: 0;
	bottom: 11px;
	left: 0;
	color: #666;
	text-shadow: 0 -1px 0 #eee;
}

.toggle input:checked+label {
	background-image: -webkit-linear-gradient(top, #eee 0%, #ccc 50%, #fff 50%, #eee 100%);
	background-image: -moz-linear-gradient(top, #eee 0%, #ccc 50%, #fff 50%, #eee 100%);
	background-image: -ms-linear-gradient(top, #eee 0%, #ccc 50%, #fff 50%, #eee 100%);
	background-image: -o-linear-gradient(top, #eee 0%, #ccc 50%, #fff 50%, #eee 100%);
	background-image: linear-gradient(top, #eee 0%, #ccc 50%, #fff 50%, #eee 100%);
	-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.4), inset 0 1px 7px -1px #ccc, inset 0 5px 1px #fafafa, inset 0 6px 0 white;
	-moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.4), inset 0 1px 7px -1px #ccc, inset 0 5px 1px #fafafa, inset 0 6px 0 white;
	box-shadow: 0 0 1px rgba(0, 0, 0, 0.4), inset 0 1px 7px -1px #ccc, inset 0 5px 1px #fafafa, inset 0 6px 0 white;
}

.toggle input:checked:hover+label {
	-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 7px -1px #ccc, inset 0 5px 1px #fafafa, inset 0 6px 0 white;
	-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 7px -1px #ccc, inset 0 5px 1px #fafafa, inset 0 6px 0 white;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 7px -1px #ccc, inset 0 5px 1px #fafafa, inset 0 6px 0 white;
}

.toggle input:checked+label:before {
	z-index: 1;
	top: 11px;
}

.toggle input:checked+label:after {
	bottom: 9px;
	color: #aaa;
	text-shadow: none;
	z-index: 4;
}

.inner-toggle {
	text-align: center;
}

.post-file i {
	color: #777;
}

#holder {
	-moz-user-select: -moz-none;
	-khtml-user-select: none;
	-webkit-user-select: none;
	padding: 10px;
	width: 250px;
	margin: 0 auto;
	position: relative;
	border-radius: 2px;
}

.button {
	background: #3D4C53;
	margin: 20px auto;
	width: 200px;
	height: 50px;
	overflow: hidden;
	text-align: center;
	transition: .2s;
	cursor: pointer;
	border-radius: 3px;
	box-shadow: 0px 1px 2px rgba(0, 0, 0, .2);
}

.btnTwo {
	position: relative;
	width: 200px;
	height: 100px;
	margin-top: -64px;
	padding-top: 2px;
	background: #e53238;
	left: -250px;
	transition: .3s;
}

.btnText {
	color: #fff;
	transition: .3s;
	font-size: 1.2em;
	font-weight: 600;
	text-align: center;
	margin-top: 14px;
}

.btnText2 {
	margin-top: 41px;
	margin-right: -130px;
	color: #FFF;
	font-weight: bold;
}

.button:hover .btnTwo {
	/*When hovering over .button change .btnTwo*/
	left: -130px;
}

.button:hover .btnText {
	/*When hovering over .button change .btnText*/
	margin-left: 65px;
}

.button:active {
	/*Clicked and held*/
	box-shadow: 0px 5px 6px rgba(0, 0, 0, 0.3);
}

button.grow,
button.shrink {
	background: #3D4C53;
	margin: 20px auto 19px;
	text-align: center;
	transition: .2s;
	cursor: pointer;
	border-radius: 3px;
	color: #fff;
	padding: 14px 60px;
	font-size: 1.2em;
	text-transform: uppercase;
	font-weight: 600;
	outline: none;
	border: none;
	letter-spacing: 1px;
}

button.grow:hover {
	-webkit-transform: scale(1.3);
	-ms-transform: scale(1.3);
	transform: scale(1.3);
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	background: #007ee5;
}

button.shrink:hover {
	-webkit-transform: scale(0.8);
	-ms-transform: scale(0.8);
	transform: scale(0.8);
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	background: #007ee5;
}

div#holder1 {
	margin: 0 auto;
	width: 28%;
}

/*--//toggle--*/

.form-control {
	display: block;
	width: 100%;
	height: 37px;
	padding: 14px 12px;
	font-size: 14px;
	line-height: 1.42857143;
	color: #777;
	background-color: #fff;
	background-image: none;
	border: 1px solid #ddd;
	border-radius: 0;
	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
	-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
	-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
	transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}

.form-control:focus {
	border-color: #FFFFFF;
	outline: 0;
	box-shadow: inset 0 0px 0px rgba(0, 0, 0, .075), 0 0 3px #00C6D7;
	-o-box-shadow: inset 0 0px 0px rgba(0, 0, 0, .075), 0 0 3px #00C6D7;
	-webkit-box-shadow: inset 0 0px 0px rgba(0, 0, 0, .075), 0 0 3px #00C6D7;
	-moz-box-shadow: inset 0 0px 0px rgba(0, 0, 0, .075), 0 0 3px #00C6D7;
}

label {
	display: inline-block;
	max-width: 100%;
	margin-bottom: 5px;
	font-weight: 400;
	font-size: 1em;
	color: #777;
}

button.btn.btn-default {
	background: #00C6D7;
	color: #fff;
	font-size: 1em;
	outline: none;
	border: none;
}

.graph-2.general {
	width: 100%;
}

.forms-main {
	margin-bottom: 2em;
}

.form-group1 input[type="text"],
.form-group1 textarea,
.form-group1 input[type="password"],
.form-group1 input[type="date"] {
	border: 1px solid #E9E9E9;
	font-size: 0.9em;
	width: 100%;
	outline: none;
	padding: 0.7em 1em;
	color: #999;
	margin-top: 0.5em;
	font-family: 'Roboto', sans-serif;
}

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

.form-group2 select {
	width: 100%;
	border: 1px solid #E9E9E9;
	font-size: 0.9em;
	width: 100%;
	outline: none;
	padding: 0.5em 1em;
	color: #999;
	margin-top: 0.5em;
	font-family: 'Roboto', sans-serif;
}

.form-group1 textarea {
	min-height: 100px;
}

label.control-label {
	margin-top: 10px;
}

.form-group.button-2 {
	margin-top: 1em;
}

label.check {
	padding: 10px 0 0 0;
}

p.hint-block.check {
	padding: 10px 0 0 0;
	color: #777;
}

input.form-control1.icon {
	padding: 7px 2px;
	margin: 0;
}

.input-group-addon:first-child {
	border-right: 0;
	border-radius: 0;
}

.input-group-addon:last-child {
	border-left: 0;
	border-radius: 0;
}

.wthree_general {
	width: 100%;
}

.form-control1,
.form-control_2.input-sm {
	border: 1px solid #ddd;
	padding: 5px 8px;
	color: #777;
	background: #fff;
	box-shadow: none !important;
	width: 100%;
	font-size: 0.85em;
	font-weight: 300;
	height: 40px;
	border-radius: 0;
	-webkit-appearance: none;
	resize: none;
	outline: none;
	margin-bottom: 10px;
}

.form-horizontal .control-label {
	padding-top: 7px;
	margin-bottom: 0;
	text-align: right;
}

.graph-form {
	margin-bottom: 2em;
	padding: 2em;
}

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

.form-body button.btn.btn-default {
	background: #007ee5;
	color: #fff;
	font-size: 1em;
	outline: none;
	border: none;
	padding: 0.6em 3em;
}

.agile-validation.agile_info_shadow {
	margin-bottom: 2em;
}

/*--//forms--*/

/*-- /tables--*/

.w3l-table-info.agile_info_shadow {
	margin-bottom: 2em;
}

/*-- //tables--*/

/*-- registration --*/

.signin-form {
	background: #fafdfd;
	padding: 3em 2em;
	text-align: center;
	width: 31%;
	margin: 0 auto;
}

.signin-form h3 {
	font-size: 2em;
	color: #212121;
	font-weight: 700;
	margin: 1em 0;
	text-transform: uppercase;
}

.signin-form h3 span {
	color: #67e1ff;
}

.signin-form img {
	border-radius: 50%;
}

.login-form {
	margin: 1em 0 2.5em;
}

.signin-form input[type="email"],
.signin-form input[type="text"],
.signin-form input[type="password"] {
	width: 100%;
	padding: 0.8em 0.8em;
	font-size: 1em;
	margin: 1em 0;
	outline: none;
	color: #888;
	border: none;
	border: 1px solid #b9c0c3;
	letter-spacing: 1px;
	text-align: center;
}

.signin-form input[type="email"] {
	background: none;
	display: block;
}

.signin-form input[type="text"] {
	background: none;
	display: block;
}

.signin-form input[type="password"] {
	background: none;
	display: block;
}

::-webkit-input-placeholder {
	color: #212121 !important;
}

.signin-form input[type="submit"] {
	outline: none;
	padding: 0.8em 0;
	width: 100%;
	text-align: center;
	font-size: 1.2em;
	margin-top: 1em;
	border: none;
	color: #FFFFFF;
	cursor: pointer;
	background: #e53238;
	box-shadow: 0px 2px 1px rgba(28, 28, 29, 0.42);
	font-weight: 600;
}

.signin-form input[type="submit"]:hover {
	background: #007ee5;
	transition: .5s all;
	-webkit-transition: .5s all;
	-moz-transition: .5s all;
	-o-transition: .5s all;
	-ms-transition: .5s all;
}

.signin-form p a {
	font-size: 0.9em;
	color: #10364a;
	letter-spacing: 2px;
	font-weight: 600;
}

.login-social-grids {
	margin: 1em 0;
}

.login-social-grids ul {
	padding: 0;
	margin: 0;
}

.login-social-grids ul li {
	display: inline-block;
	margin: 0 .5em 0 0;
}

.login-social-grids ul li a {
	color: #FFFFFF;
	text-align: center;
}

.login-social-grids ul li a i.fa.fa-facebook,
.login-social-grids ul li a i.fa.fa-twitter,
.login-social-grids ul li a i.fa.fa-rss {
	height: 30px;
	width: 30px;
	border: solid 2px #212121;
	line-height: 29px;
	background: none;
	color: #212121;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-moz-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	border-radius: 50%;
	-webkit-border-radius: 50%;
	-o-border-radius: 50%;
	-moz-border-radius: 50%;
}

.login-social-grids ul li a i.fa.fa-facebook {
	border: solid 2px #3b5998;
	background: #3b5998;
	color: #FFFFFF;
}

.login-social-grids ul li a i.fa.fa-twitter {
	border: solid 2px #55acee;
	background: #55acee;
	color: #FFFFFF;
}

.login-social-grids ul li a i.fa.fa-rss {
	border: solid 2px #f26522;
	background: #f26522;
	color: #FFFFFF;
}

.login-social-grids ul li a:hover {
	opacity: 0.6;
}

.registration h2 {
	text-transform: uppercase;
	color: #000;
	margin: 0.5em 0 1.5em 0;
	font-weight: 700;
	font-size: 1.4em;
	letter-spacing: 1px;
}

.pages_agile_info_w3l {
	background: url(../images/bottom.jpg)no-repeat center;
	background-size: cover;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	-ms-background-size: cover;
	min-height: 800px
}

.over_lay_agile_pages_w3ls {
	background: url(../images/overlay.png)repeat;
	padding: 8em 3em 5.5em 3em;
}

.registration h6 a {
	text-transform: uppercase;
	color: #e53238;
	font-weight: 700;
	font-size: 1.1em;
	letter-spacing: 2px;
}

.registration h6 {
	margin-top: 1em;
}

.registration.error h6 a {
	color: #fff;
}

.copyrights_agile {
	text-align: center;
	margin-top: 9em;
}

.copyrights_agile p {
	color: #fff;
	letter-spacing: 2px;
}

.copyrights_agile p a {
	color: #eee;
}

.copyrights_agile.two {
	margin-top: 6em;
}

.over_lay_agile_pages_w3ls.two {
	padding: 8em 3em 4em 3em;
}

/*-- //registration --*/

/*-- /error --*/

.registration.error {
	text-align: center;
	padding: 9em 0 9em 0;
}

.registration.error h2 {
	color: #fff;
	font-size: 13em;
	margin: 0;
	text-shadow: 4px 4px 2px rgba(5, 5, 6, 0.42);
	-webkit-text-shadow: 4px 4px 2px rgba(5, 5, 6, 0.42);
	-moz-text-shadow: 4px 4px 2px rgba(5, 5, 6, 0.42);
	-o-text-shadow: 4px 4px 2px rgba(5, 5, 6, 0.42);
	letter-spacing: 6px;
}

.registration.error h3 {
	color: #fff;
	font-size: 1.3em;
	margin: 1em 0 3em 0;
	font-weight: 300;
	text-transform: uppercase;
	letter-spacing: 8px;
}

.copyrights_agile.error {
	margin-top: 2em;
}

/*-- //error--*/

/*-- icons page --*/

.codes a {
	color: #999;
}

.icon-box {
	padding: 8px 15px;
	background: rgba(111, 141, 175, 0.11);
	margin: 1em 0 1em 0;
	border: 5px solid #ffffff;
	text-align: left;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	font-size: 13px;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	-moz-transition: 0.5s all;
	cursor: pointer;
}

.icon-box:hover {
	background: #000;
	transition: 0.5s all;
	-webkit-transition: 0.5s all;
	-o-transition: 0.5s all;
	-ms-transition: 0.5s all;
	-moz-transition: 0.5s all;
}

.icon-box:hover i.fa {
	color: #fff;
}

.icon-box:hover a.agile-icon {
	color: #fff;
}

.codes .bs-glyphicons li {
	float: left;
	width: 12.5%;
	height: 115px;
	padding: 10px;
	line-height: 1.4;
	text-align: center;
	font-size: 12px;
	list-style-type: none;
}

.codes .bs-glyphicons .glyphicon {
	margin-top: 5px;
	margin-bottom: 10px;
	font-size: 24px;
}

.codes .glyphicon {
	position: relative;
	top: 1px;
	display: inline-block;
	font-family: 'Glyphicons Halflings';
	font-style: normal;
	font-weight: 400;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	color: #777;
}

.codes .bs-glyphicons .glyphicon-class {
	display: block;
	text-align: center;
	word-wrap: break-word;
}

h3.icon-subheading {
	font-size: 1.4em;
	color: #e53238 !important;
	font-weight: 600;
	margin: 30px 0 15px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.icons a {
	color: #999;
}

.icon-box i {
	margin-right: 10px;
	font-size: 20px;
	color: #282a2b;
}

.icons-page .bs-glyphicons li {
	display: inline-block;
	width: 22%;
	height: 115px;
	padding: 10px;
	line-height: 1.4;
	text-align: center;
	font-size: 12px;
	list-style-type: none;
	background: rgba(40, 96, 157, 0.11);
	margin: 1%;
}

.icons-page .bs-glyphicons .glyphicon {
	margin-top: 5px;
	margin-bottom: 10px;
	font-size: 24px;
	color: #282a2b;
}

.icons-page .glyphicon {
	position: relative;
	top: 1px;
	display: inline-block;
	font-family: 'Glyphicons Halflings';
	font-style: normal;
	font-weight: 400;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	color: #777;
}

.icons-page .bs-glyphicons .glyphicon-class {
	display: block;
	text-align: center;
	word-wrap: break-word;
}

.bs-example.bs-example-tabs {
	padding: 0 3em;
}

@media (max-width:991px) {
	h2.agileits-icons-title,
	h3.agileits-icons-title {
		font-size: 28px;
	}
	h3.icon-subheading {
		font-size: 22px;
	}
}

@media (max-width:768px) {
	h3.icon-subheading {
		font-size: 25px;
	}
	.row {
		margin-right: 0;
		margin-left: 0;
	}
	.icon-box {
		margin: 0;
	}
}

@media (max-width: 640px) {
	.icon-box {
		float: left;
		width: 50%;
	}
}

@media (max-width: 480px) {
	.bs-glyphicons li {
		width: 31%;
	}
}

@media (max-width: 414px) {
	h3.icon-subheading {
		font-size: 18px;
	}
	.bs-glyphicons li {
		width: 31.33%;
	}
}

@media (max-width: 384px) {
	.icon-box {
		float: none;
		width: 100%;
	}
}

/*-- //icons page --*/

/*--/typography--*/

.well {
	font-weight: 300;
	font-size: 14px;
}

.list-group-item {
	font-weight: 300;
	font-size: 14px;
}

li.list-group-item1 {
	font-size: 14px;
}

.typo p {
	margin: 0;
	font-size: 14px;
}

.show-grid [class^=col-] {
	background: #fff;
	text-align: center;
	margin-bottom: 10px;
	line-height: 2em;
	border: 10px solid #f0f0f0;
}

.show-grid [class*="col-"]:hover {
	background: #e0e0e0;
}

.grid_3 {
	margin-bottom: 2em;
}

.xs h3,
h3.m_1 {
	color: #000;
	font-size: 1.7em;
	margin-bottom: 1em;
}

.grid_3 p {
	color: #999;
	font-size: 0.85em;
	margin-bottom: 1em;
}

.label {
	font-weight: 300 !important;
	border-radius: 4px;
}

.grid_5 {
	background: none;
	padding: 2em 0;
}

.grid_5 h3,
.grid_5 h2,
.grid_5 h1,
.grid_5 h4,
.grid_5 h5,
h3.hdg,
h3.bars {
	margin-bottom: 1em;
	color: #e53238;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.pagination>.active>a,
.pagination>.active>span,
.pagination>.active>a:hover,
.pagination>.active>span:hover,
.pagination>.active>a:focus,
.pagination>.active>span:focus {
	z-index: 0;
}

.badge-primary {
	background-color: #03a9f4;
}

.badge-success {
	background-color: #8bc34a;
}

.badge-warning {
	background-color: #ffc107;
}

.badge-danger {
	background-color: #e51c23;
}

.grid_3 p {
	line-height: 2em;
	color: #888;
	font-size: 0.9em;
	margin-bottom: 1em;
	font-weight: 300;
}

.bs-docs-example {
	margin: 1em 0;
}

section#tables p {
	margin-top: 1em;
}

.label {
	font-weight: 300 !important;
}

.label {
	padding: 4px 6px;
	border: none;
	text-shadow: none;
}

.alert {
	font-size: 0.85em;
}

h1.t-button,
h2.t-button,
h3.t-button,
h4.t-button,
h5.t-button {
	line-height: 2em;
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

li.list-group-item1 {
	line-height: 2.5em;
}

.input-group {
	margin-bottom: 20px;
}

.in-gp-tl {
	padding: 0;
}

.in-gp-tb {
	padding-right: 0;
}

.list-group {
	margin-bottom: 48px;
}

ol {
	margin-bottom: 44px;
}

h2.typoh2 {
	margin: 0 0 10px;
}

@media (max-width:768px) {
	.grid_5 {
		padding: 0 0 1em;
	}
	.grid_3 {
		margin-bottom: 0em;
	}
}

@media (max-width:640px) {
	h1,
	.h1,
	h2,
	.h2,
	h3,
	.h3 {
		margin-top: 0px;
		margin-bottom: 0px;
	}
	.grid_5 h3,
	.grid_5 h2,
	.grid_5 h1,
	.grid_5 h4,
	.grid_5 h5,
	h3.hdg,
	h3.bars {
		margin-bottom: .5em;
	}
	.progress {
		height: 10px;
		margin-bottom: 10px;
	}
	ol.breadcrumb li,
	.grid_3 p,
	ul.list-group li,
	li.list-group-item1 {
		font-size: 14px;
	}
	.breadcrumb {
		margin-bottom: 25px;
	}
	.well {
		font-size: 14px;
		margin-bottom: 10px;
	}
	h2.typoh2 {
		font-size: 1.5em;
	}
	.label {
		font-size: 60%;
	}
	.in-gp-tl {
		padding: 0 1em;
	}
	.in-gp-tb {
		padding-right: 1em;
	}
}

@media (max-width:480px) {
	.grid_5 h3,
	.grid_5 h2,
	.grid_5 h1,
	.grid_5 h4,
	.grid_5 h5,
	h3.hdg,
	h3.bars {
		font-size: 1.2em;
	}
	.table h1 {
		font-size: 26px;
	}
	.table h2 {
		font-size: 23px;
	}
	.table h3 {
		font-size: 20px;
	}
	.label {
		font-size: 53%;
	}
	.alert,
	p {
		font-size: 14px;
	}
	.pagination {
		margin: 20px 0 0px;
	}
	.grid_3.grid_4.w3layouts {
		margin-top: 0;
	}
}

@media (max-width: 320px) {
	.grid_4 {
		margin-top: 18px;
	}
	h3.title {
		font-size: 1.6em;
	}
	.alert,
	p,
	ol.breadcrumb li,
	.grid_3 p,
	.well,
	ul.list-group li,
	li.list-group-item1,
	a.list-group-item {
		font-size: 13px;
	}
	.alert {
		padding: 10px;
		margin-bottom: 10px;
	}
	ul.pagination li a {
		font-size: 14px;
		padding: 5px 11px;
	}
	.list-group {
		margin-bottom: 10px;
	}
	.well {
		padding: 10px;
	}
	.nav>li>a {
		font-size: 14px;
	}
	table.table.table-striped,
	.table-bordered,
	.bs-docs-example {
		display: none;
	}
}

.grid_3.grid_4 {
	background: #fff ! important;
	padding: 2em ! important;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	-o-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	-moz-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}

.wthree-typo {
	padding: 3em;
	background: #fff;
	margin-bottom: 2em;
}

.grid_3.grid_4.w3layouts {
	padding: 0 ! important;
}

.signin-form.profile.admin {
	background: #f9fbfd;
	padding: 2em 2em;
	box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-webkit-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-moz-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	-o-box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);
	border: 1px solid #ddd;
}

.registration.admin_agile {
	padding: 5em 0;
}

.login-social-grids.admin_w3 {
	margin: 2em 0;
}

li.second.w3l_search.admin_login {
	float: right;
	width: 25%;
	margin-top: 10px;
}

li.second.logo.admin {
	padding: 0 30px 0 25px;
}

/*-- //typography --*/

/*--copyrights start here--*/

.copyrights {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 1rem;
	text-align: center;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	-o-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	-moz-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	background: #000;
}

.copyrights p {
	font-size: 1em;
	color: #fff;
	margin-bottom: 0;
}

.copyrights p a {
	color: #1b93e1;
}

.copyrights p a:hover {
	color: #696969;
}

/*--Responsive--*/

@media (max-width:1440px) {
	.registration.admin_agile {
		padding: 3em 0;
	}
	.pages_agile_info_w3l {
		min-height: 743px;
	}
	.copyrights_agile {
		margin-top: 7em;
	}
	.registration.error {
		padding: 7em 0 7em 0;
	}
	.main-example {
		margin: 10em 2em 0 2em;
	}
}

@media (max-width:1366px) {
	.registration.admin_agile {
		padding: 2em 0;
	}
	.main-example {
		margin: 10em 1em 0 1em;
	}
	.cir_agile_info {
		min-height: 400px;
		padding: 3em 4em;
	}
}

@media (max-width:1280px) {
	.signin-form {
		padding: 3em 2em;
		width: 35%;
		margin: 0 auto;
	}
	.registration.admin_agile {
		padding: 0em 0;
	}
	.over_lay_agile_pages_w3ls {
		padding: 6em 3em 4.5em 3em;
	}
	.copyrights_agile {
		margin-top: 5em;
	}
	.pages_agile_info_w3l {
		min-height: 698px;
	}
	.main-example {
		margin: 10em 0em 0 0em;
	}
	.img_wthee_post {
		min-height: 408px;
		padding: 4em 3em 3em 3em;
	}
	.img_wthee_post1 {
		min-height: 455px;
		padding: 3em 3em;
	}
	.cir_agile_info {
		min-height: 378px;
		padding: 3em 4em;
	}
}

@media (max-width:1080px) {
	.signin-form {
		padding: 3em 2em;
		width: 45%;
	}
	.registration.error {
		padding: 4em 0 6em 0;
	}
	.pages_agile_info_w3l {
		min-height: 653px;
	}
	.socail_grid_agile {
		padding: 2em 2em;
		width: 50%;
	}
	.graph-form {
		margin-bottom: 2em;
		padding: 2em;
		width: 100%;
	}
	.button_set_one.two.agile_info_shadow.graph-form {
		width: 100%;
	}
	.button_set_one.agile_info_shadow {
		width: 100%;
		margin-bottom: 0em;
	}
	.button_set_one.three.one.agile_info_shadow {
		margin-top: 2em;
		width: 100%;
	}
	.icon-box {
		padding: 8px 15px;
		margin: 1em 0 1em 0;
		width: 33%;
	}
	h2.w3_inner_tittle {
		font-size: 1.6em;
	}
	.blank_w3ls_agile {
		padding-bottom: 5em;
	}
	.top_chart {
		display: inline-block;
		float: left;
		width: 100%;
		padding: 2em;
	}
	.top_chart:nth-child(2) {
		margin-left: 0;
		float: right;
		margin: 2em 0 0 0;
		width: 100%;
	}
	.button_set_one.agile_info_shadow:nth-child(2) {
		float: right;
		width: 100%;
		margin-top: 1em;
	}
	.sub_agile.mtn {
		margin: 0 auto;
		width: 87%;
	}
	.wthree_general.graph-form.agile_info_shadow {
		margin-top: 2em;
	}
}

@media (max-width:1050px) {
	.agile_top_w3_post {
		width: 100%;
	}
	.agile_top_w3_post_info {
		width: 100%;
		margin-left: 0%;
		margin-top: 2em;
	}
	.img_wthee_post1 {
		min-height: 405px;
		padding: 3em 3em;
	}
	.main-example {
		margin: 8em 7em 0 8em
	}
	.w3ls_agile_cylinder.chart.agile_info_shadow {
		padding: 2em 2em;
	}
	.cir_agile_info {
		min-height: 378px;
		padding: 3em 3em;
	}
	.weather_w3_inner_info ul li {
		width: 16%;
		margin-top: 2em;
	}
	.profile-ser-grids h3 {
		font-size: 11px;
		letter-spacing: 1px;
	}
}

@media (max-width:1024px) {
	.cir_agile_info {
		min-height: 340px;
		padding: 3em 2em;
	}
	.registration.admin_agile {
		padding: 1em 0;
	}
}

@media (max-width:991px) {
	.signin-form {
		padding: 3em 2em;
		width: 48%;
	}
	.bars_agileits.agile_info_shadow {
		padding: 2em;
		width: 100%;
		margin-right: 0;
		margin-bottom: 2em;
	}
	.profile-main {
		width: 51%;
		margin-right: 0;
		margin-bottom: 2em;
	}
	.socail_grid_agile {
		padding: 2em 2em;
		width: 50%;
		float: left;
	}
}

@media (max-width:800px) {
	.signin-form {
		padding: 3em 2em;
		width: 64%;
	}
	li.second.top_bell_nav {
		padding: 0 1em;
		padding-top: 14px;
	}
	li.second.full-screen {
		padding: 10px 8px;
	}
	li.second.top_bell_nav {
		padding: 0 0.7em;
		padding-top: 14px;
	}
	.inner_content_w3_agile_info {
		margin-top: 4em;
	}
	.main-example {
		margin: 7em 0em 0 0em;
	}
	#chartdiv {
		width: 100%;
		height: 350px;
	}
	.weather_w3_inner_info ul li {
		width: 30%;
		margin-top: 2em;
	}
	.over_lay_agile {
		padding: 3em 3em 4em 3em;
	}
	li.second.logo {
		padding: 0 13px;
	}
	li.second.w3l_search input[type="search"] {
		padding: 10px;
		width: 80%;
		float: left;
		height: 41px;
	}
	li.second.w3l_search button.btn.btn-default {
		outline: none;
		padding: 10px 0 11px;
		width: 20%;
	}
	.img_wthee_post1 {
		min-height: 328px;
		padding: 3em 3em;
	}
	.profile-main {
		width: 58%;
		margin-right: 0;
		margin-bottom: 2em;
	}
	.icon-box {
		padding: 8px 15px;
		margin: 0;
		width: 50%;
		float: left;
	}
	li.second.top_bell_nav ul.dropdown-menu {
		width: 257px !important;
	}
	.notification_header h3 {
		font-size: 1.2em;
		line-height: 1.5em;
	}
	.sub_agile_btn.agile_info_shadow:nth-child(2) {
		width: 100%;
		margin: 0;
		margin: 2em 0;
	}
	.sub_agile.mtn {
		margin: 0 auto;
		width: 57%;
	}
}

@media (max-width:768px) {
	.inner_content {
		padding: 2em 2em;
	}
	.w3ls_agile_cylinder.chart.agile_info_shadow {
		padding: 1em 1em;
	}
	#chartdiv {
		width: 100%;
		height: 280px;
	}
	.over_lay_agile {
		padding: 2em 2em 3em 2em;
	}
	.grid_3.grid_4 {
		padding: 1em ! important;
	}
	.button_set_one.three .btn {
		margin: 0 6px;
		color: #fff;
		padding: 9px 35px;
	}
	.graph-form {
		padding: 1em;
	}
	.wthree_general.graph-form.agile_info_shadow {
		margin-top: 1em;
	}
	h3.w3_inner_tittle {
		margin: 0.5em 0 1em 0;
		font-size: 1.2em;
		letter-spacing: 1px;
	}
	.registration.admin_agile {
		padding: 12em 0;
	}
	.inner_content_w3_agile_info {
		margin-top: 4.3em;
	}
	.w3ls_agile_circle_progress.agile_info_shadow {
		padding: 1em 1em;
		margin: 1em 0;
	}
	.bottom_agileits_grids {
		margin: 1em 0;
	}
	.bars_agileits.agile_info_shadow {
		padding: 2em;
		width: 100%;
		margin-right: 0;
		margin-bottom: 1em;
	}
	.profile-main {
		width: 62%;
		margin-right: 0;
		margin-bottom: 1em;
	}
	.agile_top_w3_post_sections {
		margin: 1em 0;
	}
	.agile_top_w3_post_info {
		width: 100%;
		margin-left: 0%;
		margin-top: 1em;
	}
	.button_set_one .btn {
		display: inline-block;
		padding: 9px 9px;
		margin-bottom: 0;
		margin-bottom: 0.5em;
	}
	.sub_agile.mtn {
		margin: 0 auto;
		width: 39%;
	}
	.w3l_agileits_breadcrumbs {
		padding: 1em 0;
		margin-top: 2em;
	}
	.button_set_one.three.one.agile_info_shadow {
		margin-top: 1em;
		width: 100%;
	}
	.buttons_w3ls_agile {
		margin-bottom: 1em;
	}
	.sub_agile_btn.agile_info_shadow:nth-child(2) {
		width: 100%;
		margin: 0;
		margin: 1em 0;
	}
	.demo-grid {
		background: #1e2021;
		border: 1px solid #787879;
		padding: 10px 0;
	}
	.mb40 {
		margin-bottom: 10px !important;
	}
	.charts_agile_w3ls.agile_info_shadow,
	.asked.agile_info_shadow,
	.blank-page.agile_info_shadow,
	.agile3-grids.agile_info_shadow {
		padding: 1em;
	}
	.w3l-table-info.agile_info_shadow {
		margin-bottom: 1em;
	}
	.sub_agile_btn.agile_info_shadow,
	.agile-validation.agile_info_shadow,
	.w3l-table-info.agile_info_shadow,
	.page_w3ls_cal,
	.agile_info_icons_wthree {
		padding: 1em;
	}
	.chart_agile {
		margin: 1em 0;
	}
	.inner_content_w3_agile_info.two_in {
		margin-top: 2.5em;
	}
	.blank_w3ls_agile {
		padding-bottom: 3em;
	}
	.over_lay_agile_pages_w3ls {
		padding: 16em 2em 11.5em 2em;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 12em 2em 9em 2em;
	}
	.registration.error {
		padding: 6em 0 7em 0;
	}
	.agile_map_info.two.agile_info_shadow {
		margin: 1em 0;
	}
	.agile_map_info.third.agile_info_shadow {
		margin-bottom: 1em;
	}
	.agile_map_info iframe {
		width: 100%;
		min-height: 350px;
	}
	#map,
	.map-canvas {
		width: 100%;
		height: 350px;
	}
	.top_chart:nth-child(2) {
		margin-left: 0;
		float: right;
		margin: 1em 0 0 0;
		width: 100%;
	}
}

@media (max-width:767px) {
	.over_lay_agile_pages_w3ls {
		padding: 8em 2em 5em 2em;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 6em 2em 5em 2em;
	}
	.registration.error {
		padding: 2em 0 6em 0;
	}
	.registration.error h2 {
		font-size: 11em;
	}
	.pages_agile_info_w3l.page_error {
		min-height: 617px;
	}
	.button_set_one.two .btn {
		margin: 0.5em 0.5em;
	}
	.button_set_one.three .btn {
		margin: 0 6px;
		padding: 9px 35px;
		margin-bottom: 0.5em;
	}
	.registration.admin_agile {
		padding: 3em 0;
	}
	h3.icon-subheading {
		font-size: 18px;
	}
}

@media (max-width:736px) {
	.over_lay_agile_pages_w3ls {
		padding: 6em 1em 4em 1em;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 6em 2em 5em 2em;
	}
	.registration.error {
		padding: 2em 0 7em 0;
	}
	.pages_agile_info_w3l.page_error {
		min-height: 607px;
	}
	.chart_agile.agile_info_shadow {
		padding: 1em 1em;
		margin: 0;
	}
}

@media (max-width:667px) {
	.over_lay_agile_pages_w3ls {
		padding: 5em 0em 3em 0em;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 6em 0em 5em 0em;
	}
	.over_lay_agile_pages_w3ls.error {
		padding: 7em 0em 4em 0em;
	}
	.inner_content_w3_agile_info {
		margin-top: 8.7em;
	}
	li.second.w3l_search form {
		margin-top: 9px;
	}
	li.second.full-screen {
		padding: 10px 8px;
		background: #007ee5;
	}
	li.second.top_bell_nav {
		padding: 0 1.37em;
		padding-top: 14px;
	}
	li.second.admin-pic {
		display: block;
		float: none;
	}
	.profile_img {
		float: right;
	}
	li.second.admin-pic img {
		margin-top: 6px;
		width: 89%;
	}
	ul.dropdown-menu.drp-mnu {
		left: 77%;
		top: 56px;
	}
	.inner_content_w3_agile_info.two_in {
		margin-top: 3.5em;
	}
	.top_chart {
		display: inline-block;
		float: left;
		width: 100%;
		padding: 1em;
	}
	li.second.w3l_search.admin_login {
		margin-top: 0px;
	}
	li.second.w3l_search.admin_login {
		float: right;
		width: 77%;
	}
}

@media (max-width:640px) {
	.img_wthee_post {
		min-height: 408px;
		padding: 3em 2em 1em 2em;
	}
	.socail_grid_agile {
		padding: 1.3em 1em;
		width: 50%;
		float: left;
	}
	.agile_w3l_social_media_text h4 {
		font-size: 1.3em;
	}
	.agile_map_info iframe {
		width: 100%;
		min-height: 250px;
	}
	#map,
	.map-canvas {
		width: 100%;
		height: 250px;
	}
}

@media (max-width:600px) {
	.signin-form {
		width: 72%;
	}
	ul.dropdown-menu.drp-mnu {
		left: 74%;
		top: 56px;
	}
	div#holder1 {
		margin: 0 auto;
		width: 70%;
	}
	.main-example {
		margin: 5em 0em 0 0em;
	}
	.img_wthee_post1 {
		min-height: 298px;
		padding: 3em 2em;
	}
	.profile_bg_agile {
		min-height: 363px;
	}
	.profile-main {
		width: 75%;
		margin-right: 0;
		margin-bottom: 1em;
	}
	.inner_content {
		padding: 1.2em 1em;
	}
	.cir_agile_info {
		min-height: 340px;
		padding: 2em 1em;
	}
	h2.w3_inner_tittle {
		font-size: 1.5em;
		margin: 0.5em 0 0.7em 0;
	}
	.blank_w3ls_agile {
		padding-bottom: 0em;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 5em 0em 4em 0em;
	}
	#chartdiv3 {
		width: 100%;
		height: 274px;
		font-size: 12px;
	}
}

@media (max-width:568px) {
	li.second.top_bell_nav {
		padding: 0 1.175em;
		padding-top: 14px;
	}
	.over_lay_agile_pages_w3ls {
		padding: 4em 0em 3em 0em;
	}
	.copyrights_agile p {
		letter-spacing: 1px;
	}
	.copyrights_agile {
		margin-top: 3em;
	}
	.pages_agile_info_w3l {
		min-height: 620px;
	}
	.registration.error {
		padding: 0em 0 9em 0;
	}
	.fallowers_agile.agile_info_shadow {
		padding: 1em;
	}
	canvas#chart0 {
		height: 203px !important;
	}
	canvas#chart1 {
		height: 210px !important;
	}
}

@media (max-width:480px) {
	.socail_grid_agile {
		padding: 1.3em 1em;
		width: 100%;
		float: left;
	}
	ul.dropdown-menu.drp-mnu {
		left: 67%;
		top: 56px;
	}
	li.second.top_bell_nav {
		padding: 0 0.63em;
		padding-top: 14px;
	}
	ul.dropdown-menu.drp-mnu {
		left: 68%;
		top: 56px;
	}
	h4.count {
		font-size: 1.2em;
	}
	.registration.admin_agile {
		padding: 1em 0;
	}
	.signin-form {
		width: 78%;
	}
	.wthree-typo {
		padding: 1em;
		margin-bottom: 1em;
	}
}

@media (max-width:414px) {
	li.second.top_bell_nav {
		padding: 0 0.65em;
		padding-top: 14px;
	}
	.dropdown-menu>li>a {
		display: block;
		padding: 6px 11px;
	}
	ul.dropdown-menu.drp-mnu {
		left: 63%;
		top: 61px;
	}
	.img_wthee_post {
		min-height: 375px;
		padding: 2em 1em 1em 1em;
	}
	p.text-no {
		font-size: 1em;
		padding: 5px 13px;
	}
	.img_wthee_post1 {
		min-height: 261px;
		padding: 2em 1em;
	}
	.weather_w3_inner_info ul li {
		width: 40%;
		margin-top: 2em;
	}
	#chartdiv9 {
		width: 100%;
		height: 217px;
		font-size: 12px;
	}
	#chartdiv {
		width: 100%;
		height: 254px;
	}
	.skills-grid {
		float: left;
		margin-right: 0%;
		width: 96%;
		margin-bottom: 1.5em;
	}
	.skills-grid:nth-child(3),
	.skills-grid:nth-child(4) {
		margin-top: 0em;
	}
	.profile-ser {
		padding: 0em 0em 1em;
	}
	.profile_bg_agile {
		min-height: 324px;
	}
	.profile-main {
		width: 100%;
		margin-right: 0;
		margin-bottom: 1em;
	}
	.signin-form {
		width: 95%;
	}
	.copyrights p {
		font-size: 0.9em;
		line-height: 1.9em;
	}
	li.second.w3l_search input[type="search"] {
		font-size: 13px;
	}
	.icon-box {
		padding: 8px 15px;
		margin: 0;
		width: 100%;
		float: left;
	}
	.registration.error h3 {
		font-size: 1em;
		margin: 1em 0 3em 0;
		letter-spacing: 8px;
	}
	.over_lay_agile_pages_w3ls {
		padding: 4em 0em 5em 0em;
	}
	.registration.error {
		padding: 5em 0 9em 0;
	}
}

@media (max-width:384px) {
	.registration h2 {
		margin: 0em 0 1em 0;
		font-size: 1.2em;
		letter-spacing: 1px;
	}
	.signin-form input[type="submit"] {
		outline: none;
		padding: 0.6em 0;
		font-size: 1.2em;
		margin-top: 0em;
	}
	li.second.top_bell_nav {
		padding: 0 0.65em;
		padding-top: 13px;
	}
	li.second.full-screen {
		padding: 10px 6px;
	}
	li.dropdown.head-dpdn i {
		font-size: 15px;
	}
	li.second.w3l_search input[type="search"] {
		padding: 10px 8px;
		font-size: 12px;
	}
	.inner_content_w3_agile_info.two_in {
		margin-top: 2.5em;
	}
	.pages_agile_info_w3l {
		min-height: 599px;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 3em 0em 3em 0em;
	}
	.registration h6 a {
		font-size: 0.9em;
		letter-spacing: 1px;
	}
}

@media (max-width:375px) {
	.registration.admin_agile {
		padding: 0em 0;
	}
	.badge.blue {
		font-size: 10px;
		line-height: 13px;
		width: 17px;
		height: 17px;
	}
	li.second.top_bell_nav {
		padding: 0 0.6em;
		padding-top: 13px;
	}
	span.year {
		font-size: 0.85em;
		display: block;
		margin: 0.5em 0;
	}
	h4.count {
		font-size: 1.1em;
	}
	.img_wthee_post {
		min-height: 335px;
		padding: 1em 1em 1em 1em;
	}
	.img_wthee_post1 {
		min-height: 235px;
		padding: 1em 1em;
	}
	.w3ls_agile_cylinder.chart.agile_info_shadow {
		padding: 0em 1em;
	}
	#chartdiv {
		width: 100%;
		height: 220px;
	}
	.weather_w3_inner_info h4 {
		font-size: 1em;
	}
	.over_lay_agile {
		padding: 2em 0em 2em 1em;
	}
	.weather_w3_inner_info ul li {
		width: 49%;
		margin-top: 1em;
	}
	ul.dropdown-menu.drp-mnu {
		left: 59%;
		top: 61px;
	}
	li.second.w3l_search input[type="search"] {
		padding: 10px;
		width: 74%;
		float: left;
		height: 41px;
	}
	li.second.w3l_search button.btn.btn-default {
		outline: none;
		padding: 10px 0 11px;
		width: 26%;
	}
	h2.w3_inner_tittle {
		font-size: 1.4em;
		margin: 0.5em 0 0.7em 0;
	}
	h3.w3_inner_tittle {
		margin: 0.5em 0 0.8em 0;
		font-size: 1.1em;
		letter-spacing: 1px;
	}
	.agile_w3l_social_media_text p {
		font-size: 0.9em;
	}
	.agile_w3l_social_media_text h4 {
		font-size: 1.2em;
	}
	.signin-form {
		padding: 2em 1.5em;
	}
	.copyrights_agile {
		margin-top: 4em;
	}
	.copyrights_agile.two {
		margin-top: 3em;
	}
}

@media (max-width:320px) {
	ul.dropdown-menu.drp-mnu {
		left: 52%;
		top: 61px;
	}
	li.second.top_bell_nav {
		padding: 0 0.5em;
		padding-top: 16px;
	}
	li.second.full-screen {
		padding: 10px 1px;
		width: 15%;
	}
	.full-screen button {
		font-size: .85em;
		width: 34px;
		height: 40px;
		line-height: 1px;
	}
	li.second.w3l_search input[type="search"] {
		padding: 6px;
		width: 74%;
		float: left;
		height: 41px;
	}
	.main-example {
		margin: 4em 0em 0 0em;
	}
	.img_wthee_post1 {
		min-height: 217px;
		padding: 1em 1em;
	}
	.inner_content_w3_agile_info.two_in {
		margin-top: 2em;
	}
	.pages_agile_info_w3l {
		min-height: 547px;
	}
	.over_lay_agile_pages_w3ls {
		padding: 3em 0em 2em 0em;
	}
	.over_lay_agile_pages_w3ls.two {
		padding: 3em 0em 2em 0em;
	}
	.registration.error h2 {
		font-size: 8em;
	}
	.registration.error h3 {
		font-size: 0.9em;
		margin: 1em 0 3em 0;
		letter-spacing: 5px;
	}
	.registration.error {
		padding: 0em 0 5em 0;
	}
	.pages_agile_info_w3l.page_error {
		min-height: 505px;
	}
}

/*--//Responsive--*/

repository: dishubit/JTCC-camera

repo_name: dishubit/JTCC-camera

extension: css


text:
@article{Watts-2021-Soil,
    title = "Soil respiration strongly offsets carbon uptake in Alaska and Northwest Canada",
    author = "Watts, Jennifer D  and
      Natali, Susan M  and
      Minions, Christina  and
      Risk, Dave  and
      Arndt, Kyle  and
      Zona, Donatella  and
      Euskirchen, Eug{\'e}nie S  and
      Rocha, Adrian V  and
      Sonnentag, Oliver  and
      Helbig, Manuel  and
      Kalhori, Aram  and
      Oechel, Walt  and
      Ikawa, Hiroki  and
      Ueyama, Masahito  and
      Suzuki, Rikie  and
      Kobayashi, Hideki  and
      Celis, Gerardo  and
      Schuur, Edward A G  and
      Humphreys, Elyn  and
      Kim, Yongwon  and
      Lee, Bang-Yong  and
      Goetz, Scott  and
      Madani, Nima  and
      Schiferl, Luke D  and
      Commane, Roisin  and
      Kimball, John S  and
      Liu, Zhihua  and
      Torn, Margaret S  and
      Potter, Stefano  and
      Wang, Jonathan A  and
      Jorgenson, M Torre  and
      Xiao, Jingfeng  and
      Li, Xing  and
      Edgar, Colin",
    journal = "Environmental Research Letters, Volume 16, Issue 8",
    volume = "16",
    number = "8",
    year = "2021",
    publisher = "IOP Publishing",
    url = "https://aclanthology.org/G21-101001",
    doi = "10.1088/1748-9326/ac1222",
    pages = "084051",
    abstract = "Abstract Soil respiration (i.e. from soils and roots) provides one of the largest global fluxes of carbon dioxide (CO 2 ) to the atmosphere and is likely to increase with warming, yet the magnitude of soil respiration from rapidly thawing Arctic-boreal regions is not well understood. To address this knowledge gap, we first compiled a new CO 2 flux database for permafrost-affected tundra and boreal ecosystems in Alaska and Northwest Canada. We then used the CO 2 database, multi-sensor satellite imagery, and random forest models to assess the regional magnitude of soil respiration. The flux database includes a new Soil Respiration Station network of chamber-based fluxes, and fluxes from eddy covariance towers. Our site-level data, spanning September 2016 to August 2017, revealed that the largest soil respiration emissions occurred during the summer (June{--}August) and that summer fluxes were higher in boreal sites (1.87 {\mbox{$\pm$}} 0.67 g CO 2 {--}C m −2 d −1 ) relative to tundra (0.94 {\mbox{$\pm$}} 0.4 g CO 2 {--}C m −2 d −1 ). We also observed considerable emissions (boreal: 0.24 {\mbox{$\pm$}} 0.2 g CO 2 {--}C m −2 d −1 ; tundra: 0.18 {\mbox{$\pm$}} 0.16 g CO 2 {--}C m −2 d −1 ) from soils during the winter (November{--}March) despite frozen surface conditions. Our model estimates indicated an annual region-wide loss from soil respiration of 591 {\mbox{$\pm$}} 120 Tg CO 2 {--}C during the 2016{--}2017 period. Summer months contributed to 58{\%} of the regional soil respiration, winter months contributed to 15{\%}, and the shoulder months contributed to 27{\%}. In total, soil respiration offset 54{\%} of annual gross primary productivity (GPP) across the study domain. We also found that in tundra environments, transitional tundra/boreal ecotones, and in landscapes recently affected by fire, soil respiration often exceeded GPP, resulting in a net annual source of CO 2 to the atmosphere. As this region continues to warm, soil respiration may increasingly offset GPP, further amplifying global climate change.",
}

repository: gwf-uwaterloo/gwf-publications

license_type: permissive

repo_name: gwf-uwaterloo/gwf-publications

branch_name: refs/heads/main

gha_language: Python

extension: bib


text:
DESCRIPTION = "U-boot bootloader"
SECTION = "bootloader"
MAINTAINER = "Cliff Brake <cliff.brake@gmail.com>"
PRIORITY = "optional"
LICENSE = "GPL"
PV = "0.0cvs${CVSDATE}"
PR = "r2"

PROVIDES = "virtual/bootloader"

S = "${WORKDIR}/u-boot"

SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/u-boot;module=u-boot \
	   file://arm_flags.patch;patch=1"

EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
TARGET_LDFLAGS = ""
UBOOT_MACHINE ?= "${MACHINE}"

inherit base

do_compile () {
	oe_runmake ${UBOOT_MACHINE}
	oe_runmake all
}

do_deploy () {
	install -d ${DEPLOY_DIR_IMAGE}
	install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}-${DATETIME}.bin
}
do_deploy[dirs] = "${S}"
addtask deploy before do_build after do_compile

license: MIT

repository: Terentyev/familiar-linux

repo_name: Terentyev/familiar-linux

branch_name: refs/heads/master

extension: bb


text:
%Aigaion BibTeX export
%Tuesday 17th of July 2007 06:58:50 PM

@INPROCEEDINGS {Tomanek2007law,
title = {{Efficient Annotation with the Jena ANnotation Environment (JANE)}},
author = {Tomanek, Katrin and Wermter, Joachim and Hahn, Udo},
booktitle = {Proceedings of the Linguistic Annotation Workshop},
year = {2007},
month = {June},
pages = {9--16},
}

@INPROCEEDINGS {Tomanek2007emnlp,
title = {An Approach to Text Corpus Construction which Cuts Annotation Costs and Maintains Corpus Reusability of Annotated Data},
author = {Tomanek, Katrin and Wermter, Joachim and Hahn, Udo},
booktitle = {Proceedings of the 2007 Joint Conference on Empirical Methods in
Natural Language Processing and Computational Natural Language Learning},
year = 2007,
pages = {486--495},
}

@PHDTHESIS{tomanek.thesis10,
  author = {Tomanek, Katrin},
  title = {Resource-Aware Annotation through Active Learning},
  school = {Technical University of Dortmund},
  year = {2010},
}

repository: JULIELab/jena-annotation-environment

repo_name: JULIELab/jena-annotation-environment


text:
require rauc-git.inc

SRC_URI_append = " \
  file://system.conf \
  file://ca.cert.pem \
  file://rauc-mark-good.service \
  "

SYSTEMD_PACKAGES += "${PN}-mark-good"
SYSTEMD_SERVICE_${PN}-mark-good = "rauc-mark-good.service"

inherit systemd

do_install () {
	autotools_do_install

        # Create rauc config dir
        # Warn if system configuration was not overwritten
        if ! grep -q "^[^#]" ${WORKDIR}/system.conf; then
                bbwarn "Please overwrite example system.conf with a project specific one!"
        fi
        install -d ${D}${sysconfdir}/rauc
        install -m 0644 ${WORKDIR}/system.conf ${D}${sysconfdir}/rauc/system.conf

        # Warn if CA file was not overwritten
        if ! grep -q "^[^#]" ${WORKDIR}/ca.cert.pem; then
                bbwarn "Please overwrite example ca.cert.pem with a project specific one!"
        fi
        install -d ${D}${sysconfdir}/rauc/
        install -m 0644 ${WORKDIR}/ca.cert.pem ${D}${sysconfdir}/rauc/

        install -d ${D}${systemd_unitdir}/system/
        install -m 0644 ${WORKDIR}/rauc-mark-good.service ${D}${systemd_unitdir}/system/
        sed -i -e 's!@BINDIR@!${bindir}!g' ${D}${systemd_unitdir}/system/*.service
}

PACKAGES =+ "${PN}-mark-good"

RDEPENDS_${PN} += "${@bb.utils.contains("PREFERRED_PROVIDER_virtual/bootloader", "barebox", "dt-utils-barebox-state", "",d)}"
RDEPENDS_${PN} += "${@bb.utils.contains("PREFERRED_PROVIDER_virtual/bootloader", "u-boot", "u-boot-fw-utils", "",d)}"

RRECOMMENDS_${PN}_append = " mtd-utils ${PN}-mark-good"

FILES_${PN}-mark-good = "${systemd_unitdir}/system/rauc-mark-good.service"

PACKAGECONFIG ??= "service network json"

repository: pombredanne/meta-rauc

repo_name: pombredanne/meta-rauc


text:
@charset "UTF-8"
*{

}

body{
  background-image: linear-gradient(to right,#B8BAD9, #B1BFA3 );

}
main{
  font-family:Arial, Helvetica, sans-serif;
  background-color: white;
  border-radius: 10px;
  box-shadow: 5px 6px 15px #87927cc0;
  width: 600px;
  padding: 10px;
  margin: auto;
}
p{
    text-align: justify;
}

h1{
  color: #464D73;
  text-align: center;

}

h2{
  color: #918ABF;

}


text:
SUMMARY = "Basic Hello Cargo Example"
HOMEPAGE = "https://git.taservs.net/akloc/rust-yocto-examples"
LICENSE = "CLOSED"

inherit cargo

SRC_URI = "git://github.com/1kloc/rust-yocto-examples.git;protocol=git;branch=master"
S = "${WORKDIR}/git/"
CARGO_MANIFEST_PATH = "${S}/rust/example1/hello_cargo/Cargo.toml"
SRCREV = "${AUTOREV}"


text:
@InProceedings{carlson16,
  supplementary = {Supplementary:carlson16-supp.pdf},
  title = {Partition Functions from Rao-Blackwellized Tempered Sampling},
  author = {David Carlson and Patrick Stinson and Ari Pakman and Liam Paninski},
  pages = {2896-2905},
  abstract = {Partition functions of probability distributions are important quantities for model evaluation and comparisons. We present a new method to compute partition functions of complex and multimodal distributions. Such distributions are often sampled using simulated tempering, which augments the target space with an auxiliary inverse temperature variable. Our method exploits the multinomial probability law of the inverse temperatures, and provides estimates of the partition function in terms of a simple quotient of Rao-Blackwellized marginal inverse temperature probability estimates, which are updated while sampling. We show that the method has interesting connections with several alternative popular methods, and offers some significant advantages. In particular, we empirically find that the new method provides more accurate estimates than Annealed Importance Sampling when calculating partition functions of large Restricted Boltzmann Machines (RBM); moreover, the method is sufficiently accurate to track training and validation log-likelihoods during learning of RBMs, at minimal computational cost.},
}

repository: mreid/papersite

repo_name: mreid/papersite

gha_license_id: MIT

gha_language: TeX


text:
@misc{Dua:2019 ,
  author = "Dua, Dheeru and Graff, Casey",
  year = 2017,
  title = "{UCI} Machine Learning Repository",
  url = "http://archive.ics.uci.edu/ml",
  institution = "University of California, Irvine, School of Information and
Computer Sciences"
}

repository: tensorflow/datasets

repo_name: tensorflow/datasets


text:
package aes

import (
	"bytes"
	"fmt"
	"testing"

	"github.com/traherom/gocrypt"
	"github.com/traherom/memstream"
)

var keys = &gocrypt.KeyCombo{
	gocrypt.Key{0xd3, 0x51, 0x87, 0x67, 0xad, 0xe9, 0x28, 0x33, 0x31, 0xc5, 0x26, 0x64, 0x8b, 0x79, 0xc7, 0x1f},
	gocrypt.Key{0xa7, 0x73, 0xa8, 0xff, 0x8c, 0xdf, 0x63, 0xd3, 0xcd, 0x1d, 0x0, 0x5c, 0x80, 0x1b, 0x20, 0x60},
}
var originals = [][]byte{[]byte("a short test"),
	[]byte("exactly one 1234"),
	[]byte("exactly two 1234 exactly two 123"),
	[]byte("this is a very long test case, certainly more than a single block"),
	[]byte("this is a very long test case, certainly more than a single block this is a very long test case, certainly more than a single block"),
	[]byte{},
}

// TestEncryptDecrypt tests if basic encrypt->decryption operation works correctly,
// producing the same bytes after decryption as the original
func TestEncryptDecrypt(t *testing.T) {
	for _, orig := range originals {
		//fmt.Printf("Encrypt/decrypt test %v: %v byte original\n", testNum, len(orig))

		// Encrypt
		encrypted, err := encryptExample(orig)
		if err != nil {
			t.Errorf("Encryption failed: %v", err)
			return
		}

		// Decrypt
		decrypted, err := decryptExample(encrypted)
		if err != nil {
			t.Errorf("Decryption failed: %v", err)
			return
		}

		if !bytes.Equal(orig, decrypted) {
			t.Error("Decrypted bytes do not match original")
			return
		}
	}
}

// TestDecryptModified tests if the decryption function correctly rejects
// altered originals, no matter where that alteration occurs
func TestDecryptModified(t *testing.T) {
	for _, orig := range originals {
		// Encrypt
		encrypted, err := encryptExample(orig)
		modified := make([]byte, len(encrypted))

		for modByte := 0; modByte < len(encrypted); modByte++ {
			//fmt.Printf("Mod test %v: changing byte %v of %v\n", testNum, modByte, len(encrypted))

			// Modify
			copy(modified, encrypted)
			modified[modByte]++

			// Decrypt
			_, err = decryptExample(modified)
			if err == nil {
				t.Errorf("Decryption did NOT fail like it should: %v", err)
				return
			}
		}
	}
}

// TestEncryptingFromMiddle tests that Encrypting when the source is NOT
// at the beginning of the stream works properly
func TestEncryptingFromMiddle(t *testing.T) {
	actualBytes := []byte("abcdefghijklmnopqrstuvwxyz")
	actualStart := 10

	orig := memstream.NewCapacity(30)
	orig.Write(actualBytes)

	// Jump part way in and encrypt
	orig.Seek(int64(actualStart), 0)
	encrypted := memstream.NewCapacity(50)
	_, _, err := Encrypt(orig, encrypted, keys)
	if err != nil {
		t.Errorf("Unable to encrypt: %v", err)
		return
	}

	// Decrypt
	encrypted.Seek(0, 0)
	decrypted := memstream.NewCapacity(30)
	_, _, err = Decrypt(encrypted, decrypted, keys)
	if err != nil {
		t.Errorf("Unable to decrypt: %v", err)
		return
	}

	if !bytes.Equal(actualBytes[actualStart:], decrypted.Bytes()) {
		t.Errorf("Decrypted bytes (%v) do not match original (%v)", decrypted.Bytes(), actualBytes)
		fmt.Println(decrypted.Bytes())
		fmt.Println(actualBytes[actualStart:])
		return
	}
}

func encryptExample(orig []byte) ([]byte, error) {
	var encryptionBuff bytes.Buffer
	_, _, err := Encrypt(bytes.NewReader(orig), &encryptionBuff, keys)
	if err != nil {
		return nil, err
	}

	return encryptionBuff.Bytes(), nil
}

func decryptExample(encrypted []byte) ([]byte, error) {
	var decryptBuff bytes.Buffer
	_, _, err := Decrypt(bytes.NewReader(encrypted), &decryptBuff, keys)
	if err != nil {
		return nil, err
	}

	return decryptBuff.Bytes(), nil
}

repository: traherom/gocrypt

repo_name: traherom/gocrypt

extension: go


text:
# Remove strings matching given regular expression from a list.
# @param(in,out) aItems Reference of a list variable to filter.
# @param aRegEx Value of regular expression to match.
function (filter_items aItems aRegEx)
    # For each item in our list
    foreach (item ${${aItems}})
        # Check if our items matches our regular expression
        if ("${item}" MATCHES ${aRegEx})
            # Remove current item from our list
            list (REMOVE_ITEM ${aItems} ${item})
        endif ("${item}" MATCHES ${aRegEx})
    endforeach(item)
    # Provide output parameter
    set(${aItems} ${${aItems}} PARENT_SCOPE)
endfunction (filter_items)

# Additional targets to perform clang-format/clang-tidy
# Get all project files
file(GLOB_RECURSE
     ALL_CXX_SOURCE_FILES
     *.[chi]pp *.[chi]xx *.cc *.hh *.ii *.[CHI]
)

# exclude external libraries
filter_items(ALL_CXX_SOURCE_FILES ".*libs.*")

# Adding clang-format target if executable is found
find_program(CLANG_FORMAT "clang-format")
if(CLANG_FORMAT)
  add_custom_target(
    clang-format
    COMMAND clang-format
    -i
    -style=file
    ${ALL_CXX_SOURCE_FILES}
    )
endif()

# Adding clang-tidy target if executable is found
find_program(CLANG_TIDY "clang-tidy")
if(CLANG_TIDY)
  add_custom_target(
    clang-tidy
    COMMAND /usr/local/bin/clang-tidy
    ${ALL_CXX_SOURCE_FILES}
    -config=''
    --
    -std=c++11
    ${INCLUDE_DIRECTORIES}
    )
endif()

license: Unlicense

extension: cmake


text:
package vfs

import (
	"context"
	"errors"
	"fmt"
	"io"
	"os"
	"testing"
	"time"

	"github.com/rclone/rclone/fs"
	"github.com/rclone/rclone/fs/operations"
	"github.com/rclone/rclone/fstest"
	"github.com/rclone/rclone/vfs/vfscommon"
	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)

// Check interfaces
var (
	_ io.Reader   = (*RWFileHandle)(nil)
	_ io.ReaderAt = (*RWFileHandle)(nil)
	_ io.Writer   = (*RWFileHandle)(nil)
	_ io.WriterAt = (*RWFileHandle)(nil)
	_ io.Seeker   = (*RWFileHandle)(nil)
	_ io.Closer   = (*RWFileHandle)(nil)
	_ Handle      = (*RWFileHandle)(nil)
)

// Create a file and open it with the flags passed in
func rwHandleCreateFlags(t *testing.T, create bool, filename string, flags int) (r *fstest.Run, vfs *VFS, fh *RWFileHandle) {
	opt := vfscommon.DefaultOpt
	opt.CacheMode = vfscommon.CacheModeFull
	opt.WriteBack = writeBackDelay
	r, vfs = newTestVFSOpt(t, &opt)

	if create {
		file1 := r.WriteObject(context.Background(), filename, "0123456789abcdef", t1)
		r.CheckRemoteItems(t, file1)
	}

	h, err := vfs.OpenFile(filename, flags, 0777)
	require.NoError(t, err)
	fh, ok := h.(*RWFileHandle)
	require.True(t, ok)

	return r, vfs, fh
}

// Open a file for read
func rwHandleCreateReadOnly(t *testing.T) (r *fstest.Run, vfs *VFS, fh *RWFileHandle) {
	return rwHandleCreateFlags(t, true, "dir/file1", os.O_RDONLY)
}

// Open a file for write
func rwHandleCreateWriteOnly(t *testing.T) (r *fstest.Run, vfs *VFS, fh *RWFileHandle) {
	return rwHandleCreateFlags(t, false, "file1", os.O_WRONLY|os.O_CREATE)
}

// read data from the string
func rwReadString(t *testing.T, fh *RWFileHandle, n int) string {
	buf := make([]byte, n)
	n, err := fh.Read(buf)
	if err != io.EOF {
		assert.NoError(t, err)
	}
	return string(buf[:n])
}

func TestRWFileHandleMethodsRead(t *testing.T) {
	_, _, fh := rwHandleCreateReadOnly(t)

	// String
	assert.Equal(t, "dir/file1 (rw)", fh.String())
	assert.Equal(t, "<nil *RWFileHandle>", (*RWFileHandle)(nil).String())
	assert.Equal(t, "<nil *RWFileHandle.file>", new(RWFileHandle).String())

	// Node
	node := fh.Node()
	assert.Equal(t, "file1", node.Name())

	// Size
	assert.Equal(t, int64(16), fh.Size())

	// Read 1
	assert.Equal(t, "0", rwReadString(t, fh, 1))

	// Read remainder
	assert.Equal(t, "123456789abcdef", rwReadString(t, fh, 256))

	// Read EOF
	buf := make([]byte, 16)
	_, err := fh.Read(buf)
	assert.Equal(t, io.EOF, err)

	// Sync
	err = fh.Sync()
	assert.NoError(t, err)

	// Stat
	var fi os.FileInfo
	fi, err = fh.Stat()
	assert.NoError(t, err)
	assert.Equal(t, int64(16), fi.Size())
	assert.Equal(t, "file1", fi.Name())

	// Close
	assert.False(t, fh.closed)
	assert.Equal(t, nil, fh.Close())
	assert.True(t, fh.closed)

	// Close again
	assert.Equal(t, ECLOSED, fh.Close())
}

func TestRWFileHandleSeek(t *testing.T) {
	_, _, fh := rwHandleCreateReadOnly(t)

	assert.Equal(t, fh.opened, false)

	// Check null seeks don't open the file
	n, err := fh.Seek(0, io.SeekStart)
	assert.NoError(t, err)
	assert.Equal(t, int64(0), n)
	assert.Equal(t, fh.opened, false)
	n, err = fh.Seek(0, io.SeekCurrent)
	assert.NoError(t, err)
	assert.Equal(t, int64(0), n)
	assert.Equal(t, fh.opened, false)

	assert.Equal(t, "0", rwReadString(t, fh, 1))

	// 0 means relative to the origin of the file,
	n, err = fh.Seek(5, io.SeekStart)
	assert.NoError(t, err)
	assert.Equal(t, int64(5), n)
	assert.Equal(t, "5", rwReadString(t, fh, 1))

	// 1 means relative to the current offset
	n, err = fh.Seek(-3, io.SeekCurrent)
	assert.NoError(t, err)
	assert.Equal(t, int64(3), n)
	assert.Equal(t, "3", rwReadString(t, fh, 1))

	// 2 means relative to the end.
	n, err = fh.Seek(-3, io.SeekEnd)
	assert.NoError(t, err)
	assert.Equal(t, int64(13), n)
	assert.Equal(t, "d", rwReadString(t, fh, 1))

	// Seek off the end
	_, err = fh.Seek(100, io.SeekStart)
	assert.NoError(t, err)

	// Get the error on read
	buf := make([]byte, 16)
	l, err := fh.Read(buf)
	assert.Equal(t, io.EOF, err)
	assert.Equal(t, 0, l)

	// Close
	assert.Equal(t, nil, fh.Close())
}

func TestRWFileHandleReadAt(t *testing.T) {
	_, _, fh := rwHandleCreateReadOnly(t)

	// read from start
	buf := make([]byte, 1)
	n, err := fh.ReadAt(buf, 0)
	require.NoError(t, err)
	assert.Equal(t, 1, n)
	assert.Equal(t, "0", string(buf[:n]))

	// seek forwards
	n, err = fh.ReadAt(buf, 5)
	require.NoError(t, err)
	assert.Equal(t, 1, n)
	assert.Equal(t, "5", string(buf[:n]))

	// seek backwards
	n, err = fh.ReadAt(buf, 1)
	require.NoError(t, err)
	assert.Equal(t, 1, n)
	assert.Equal(t, "1", string(buf[:n]))

	// read exactly to the end
	buf = make([]byte, 6)
	n, err = fh.ReadAt(buf, 10)
	require.NoError(t, err)
	assert.Equal(t, 6, n)
	assert.Equal(t, "abcdef", string(buf[:n]))

	// read off the end
	buf = make([]byte, 256)
	n, err = fh.ReadAt(buf, 10)
	assert.Equal(t, io.EOF, err)
	assert.Equal(t, 6, n)
	assert.Equal(t, "abcdef", string(buf[:n]))

	// read starting off the end
	n, err = fh.ReadAt(buf, 100)
	assert.Equal(t, io.EOF, err)
	assert.Equal(t, 0, n)

	// Properly close the file
	assert.NoError(t, fh.Close())

	// check reading on closed file
	_, err = fh.ReadAt(buf, 100)
	assert.Equal(t, ECLOSED, err)
}

func TestRWFileHandleFlushRead(t *testing.T) {
	_, _, fh := rwHandleCreateReadOnly(t)

	// Check Flush does nothing if read not called
	err := fh.Flush()
	assert.NoError(t, err)
	assert.False(t, fh.closed)

	// Read data
	buf := make([]byte, 256)
	n, err := fh.Read(buf)
	assert.True(t, err == io.EOF || err == nil)
	assert.Equal(t, 16, n)

	// Check Flush does nothing if read called
	err = fh.Flush()
	assert.NoError(t, err)
	assert.False(t, fh.closed)

	// Check flush does nothing if called again
	err = fh.Flush()
	assert.NoError(t, err)
	assert.False(t, fh.closed)

	// Properly close the file
	assert.NoError(t, fh.Close())
}

func TestRWFileHandleReleaseRead(t *testing.T) {
	_, _, fh := rwHandleCreateReadOnly(t)

	// Read data
	buf := make([]byte, 256)
	n, err := fh.Read(buf)
	assert.True(t, err == io.EOF || err == nil)
	assert.Equal(t, 16, n)

	// Check Release closes file
	err = fh.Release()
	assert.NoError(t, err)
	assert.True(t, fh.closed)

	// Check Release does nothing if called again
	err = fh.Release()
	assert.NoError(t, err)
	assert.True(t, fh.closed)
}

/// ------------------------------------------------------------

func TestRWFileHandleMethodsWrite(t *testing.T) {
	r, vfs, fh := rwHandleCreateWriteOnly(t)

	// String
	assert.Equal(t, "file1 (rw)", fh.String())
	assert.Equal(t, "<nil *RWFileHandle>", (*RWFileHandle)(nil).String())
	assert.Equal(t, "<nil *RWFileHandle.file>", new(RWFileHandle).String())

	// Node
	node := fh.Node()
	assert.Equal(t, "file1", node.Name())

	offset := func() int64 {
		n, err := fh.Seek(0, io.SeekCurrent)
		require.NoError(t, err)
		return n
	}

	// Offset #1
	assert.Equal(t, int64(0), offset())
	assert.Equal(t, int64(0), node.Size())

	// Size #1
	assert.Equal(t, int64(0), fh.Size())

	// Write
	n, err := fh.Write([]byte("hello"))
	assert.NoError(t, err)
	assert.Equal(t, 5, n)

	// Offset #2
	assert.Equal(t, int64(5), offset())
	assert.Equal(t, int64(5), node.Size())

	// Size #2
	assert.Equal(t, int64(5), fh.Size())

	// WriteString
	n, err = fh.WriteString(" world!")
	assert.NoError(t, err)
	assert.Equal(t, 7, n)

	// Sync
	err = fh.Sync()
	assert.NoError(t, err)

	// Stat
	var fi os.FileInfo
	fi, err = fh.Stat()
	assert.NoError(t, err)
	assert.Equal(t, int64(12), fi.Size())
	assert.Equal(t, "file1", fi.Name())

	// Truncate
	err = fh.Truncate(11)
	assert.NoError(t, err)

	// Close
	assert.NoError(t, fh.Close())

	// Check double close
	err = fh.Close()
	assert.Equal(t, ECLOSED, err)

	// check vfs
	root, err := vfs.Root()
	require.NoError(t, err)
	checkListing(t, root, []string{"file1,11,false"})

	// check the underlying r.Fremote but not the modtime
	file1 := fstest.NewItem("file1", "hello world", t1)
	vfs.WaitForWriters(waitForWritersDelay)
	fstest.CheckListingWithPrecision(t, r.Fremote, []fstest.Item{file1}, []string{}, fs.ModTimeNotSupported)
}

func TestRWFileHandleWriteAt(t *testing.T) {
	r, vfs, fh := rwHandleCreateWriteOnly(t)

	offset := func() int64 {
		n, err := fh.Seek(0, io.SeekCurrent)
		require.NoError(t, err)
		return n
	}

	// Preconditions
	assert.Equal(t, int64(0), offset())
	assert.True(t, fh.opened)
	assert.False(t, fh.writeCalled)

	// Write the data
	n, err := fh.WriteAt([]byte("hello**"), 0)
	assert.NoError(t, err)
	assert.Equal(t, 7, n)

	// After write
	assert.Equal(t, int64(0), offset())
	assert.True(t, fh.writeCalled)

	// Write more data
	n, err = fh.WriteAt([]byte(" world"), 5)
	assert.NoError(t, err)
	assert.Equal(t, 6, n)

	// Close
	assert.NoError(t, fh.Close())

	// Check can't write on closed handle
	n, err = fh.WriteAt([]byte("hello"), 0)
	assert.Equal(t, ECLOSED, err)
	assert.Equal(t, 0, n)

	// check vfs
	root, err := vfs.Root()
	require.NoError(t, err)
	checkListing(t, root, []string{"file1,11,false"})

	// check the underlying r.Fremote but not the modtime
	file1 := fstest.NewItem("file1", "hello world", t1)
	vfs.WaitForWriters(waitForWritersDelay)
	fstest.CheckListingWithPrecision(t, r.Fremote, []fstest.Item{file1}, []string{}, fs.ModTimeNotSupported)
}

func TestRWFileHandleWriteNoWrite(t *testing.T) {
	r, vfs, fh := rwHandleCreateWriteOnly(t)

	// Close the file without writing to it
	err := fh.Close()
	if errors.Is(err, fs.ErrorCantUploadEmptyFiles) {
		t.Logf("skipping test: %v", err)
		return
	}
	assert.NoError(t, err)

	// Create a different file (not in the cache)
	h, err := vfs.OpenFile("file2", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
	require.NoError(t, err)

	// Close it with Flush and Release
	err = h.Flush()
	assert.NoError(t, err)
	err = h.Release()
	assert.NoError(t, err)

	// check vfs
	root, err := vfs.Root()
	require.NoError(t, err)
	checkListing(t, root, []string{"file1,0,false", "file2,0,false"})

	// check the underlying r.Fremote but not the modtime
	file1 := fstest.NewItem("file1", "", t1)
	file2 := fstest.NewItem("file2", "", t1)
	vfs.WaitForWriters(waitForWritersDelay)
	fstest.CheckListingWithPrecision(t, r.Fremote, []fstest.Item{file1, file2}, []string{}, fs.ModTimeNotSupported)
}

func TestRWFileHandleFlushWrite(t *testing.T) {
	_, _, fh := rwHandleCreateWriteOnly(t)

	// Check that the file has been create and is open
	assert.True(t, fh.opened)

	// Write some data
	n, err := fh.Write([]byte("hello"))
	assert.NoError(t, err)
	assert.Equal(t, 5, n)
	assert.True(t, fh.opened)

	// Check Flush does not close file if write called
	err = fh.Flush()
	assert.NoError(t, err)
	assert.False(t, fh.closed)

	// Check flush does nothing if called again
	err = fh.Flush()
	assert.NoError(t, err)
	assert.False(t, fh.closed)

	// Check that Close closes the file
	err = fh.Close()
	assert.NoError(t, err)
	assert.True(t, fh.closed)
}

func TestRWFileHandleReleaseWrite(t *testing.T) {
	_, _, fh := rwHandleCreateWriteOnly(t)

	// Write some data
	n, err := fh.Write([]byte("hello"))
	assert.NoError(t, err)
	assert.Equal(t, 5, n)

	// Check Release closes file
	err = fh.Release()
	assert.NoError(t, err)
	assert.True(t, fh.closed)

	// Check Release does nothing if called again
	err = fh.Release()
	assert.NoError(t, err)
	assert.True(t, fh.closed)
}

// check the size of the file through the open file (if not nil) and via stat
func assertSize(t *testing.T, vfs *VFS, fh *RWFileHandle, filepath string, size int64) {
	if fh != nil {
		assert.Equal(t, size, fh.Size())
	}
	fi, err := vfs.Stat(filepath)
	require.NoError(t, err)
	assert.Equal(t, size, fi.Size())
}

func TestRWFileHandleSizeTruncateExisting(t *testing.T) {
	_, vfs, fh := rwHandleCreateFlags(t, true, "dir/file1", os.O_WRONLY|os.O_TRUNC)

	// check initial size after opening
	assertSize(t, vfs, fh, "dir/file1", 0)

	// write some bytes
	n, err := fh.Write([]byte("hello"))
	assert.NoError(t, err)
	assert.Equal(t, 5, n)

	// check size after writing
	assertSize(t, vfs, fh, "dir/file1", 5)

	// close
	assert.NoError(t, fh.Close())

	// check size after close
	assertSize(t, vfs, nil, "dir/file1", 5)
}

func TestRWFileHandleSizeCreateExisting(t *testing.T) {
	_, vfs, fh := rwHandleCreateFlags(t, true, "dir/file1", os.O_WRONLY|os.O_CREATE)

	// check initial size after opening
	assertSize(t, vfs, fh, "dir/file1", 16)

	// write some bytes
	n, err := fh.Write([]byte("hello"))
	assert.NoError(t, err)
	assert.Equal(t, 5, n)

	// check size after writing
	assertSize(t, vfs, fh, "dir/file1", 16)

	// write some more bytes
	n, err = fh.Write([]byte("helloHELLOhello"))
	assert.NoError(t, err)
	assert.Equal(t, 15, n)

	// check size after writing
	assertSize(t, vfs, fh, "dir/file1", 20)

	// close
	assert.NoError(t, fh.Close())

	// check size after close
	assertSize(t, vfs, nil, "dir/file1", 20)
}

func TestRWFileHandleSizeCreateNew(t *testing.T) {
	_, vfs, fh := rwHandleCreateFlags(t, false, "file1", os.O_WRONLY|os.O_CREATE)

	// check initial size after opening
	assertSize(t, vfs, fh, "file1", 0)

	// write some bytes
	n, err := fh.Write([]byte("hello"))
	assert.NoError(t, err)
	assert.Equal(t, 5, n)

	// check size after writing
	assertSize(t, vfs, fh, "file1", 5)

	// check size after writing
	assertSize(t, vfs, fh, "file1", 5)

	// close
	assert.NoError(t, fh.Close())

	// check size after close
	assertSize(t, vfs, nil, "file1", 5)
}

func testRWFileHandleOpenTest(t *testing.T, vfs *VFS, test *openTest) {
	fileName := "open-test-file"

	// Make sure we delete the file on failure too
	defer func() {
		_ = vfs.Remove(fileName)
	}()

	// first try with file not existing
	_, err := vfs.Stat(fileName)
	require.True(t, os.IsNotExist(err))

	f, openNonExistentErr := vfs.OpenFile(fileName, test.flags, 0666)

	var readNonExistentErr error
	var writeNonExistentErr error
	if openNonExistentErr == nil {
		// read some bytes
		buf := []byte{0, 0}
		_, readNonExistentErr = f.Read(buf)

		// write some bytes
		_, writeNonExistentErr = f.Write([]byte("hello"))

		// close
		err = f.Close()
		require.NoError(t, err)
	}

	// write the file
	f, err = vfs.OpenFile(fileName, os.O_WRONLY|os.O_CREATE, 0777)
	require.NoError(t, err)
	_, err = f.Write([]byte("hello"))
	require.NoError(t, err)
	err = f.Close()
	require.NoError(t, err)

	// then open file and try with file existing

	f, openExistingErr := vfs.OpenFile(fileName, test.flags, 0666)
	var readExistingErr error
	var writeExistingErr error
	if openExistingErr == nil {
		// read some bytes
		buf := []byte{0, 0}
		_, readExistingErr = f.Read(buf)

		// write some bytes
		_, writeExistingErr = f.Write([]byte("HEL"))

		// close
		err = f.Close()
		require.NoError(t, err)
	}

	// read the file
	f, err = vfs.OpenFile(fileName, os.O_RDONLY, 0)
	require.NoError(t, err)
	buf, err := io.ReadAll(f)
	require.NoError(t, err)
	err = f.Close()
	require.NoError(t, err)
	contents := string(buf)

	// remove file
	node, err := vfs.Stat(fileName)
	require.NoError(t, err)
	err = node.Remove()
	require.NoError(t, err)

	// check
	assert.Equal(t, test.openNonExistentErr, openNonExistentErr, "openNonExistentErr: want=%v, got=%v", test.openNonExistentErr, openNonExistentErr)
	assert.Equal(t, test.readNonExistentErr, readNonExistentErr, "readNonExistentErr: want=%v, got=%v", test.readNonExistentErr, readNonExistentErr)
	assert.Equal(t, test.writeNonExistentErr, writeNonExistentErr, "writeNonExistentErr: want=%v, got=%v", test.writeNonExistentErr, writeNonExistentErr)
	assert.Equal(t, test.openExistingErr, openExistingErr, "openExistingErr: want=%v, got=%v", test.openExistingErr, openExistingErr)
	assert.Equal(t, test.readExistingErr, readExistingErr, "readExistingErr: want=%v, got=%v", test.readExistingErr, readExistingErr)
	assert.Equal(t, test.writeExistingErr, writeExistingErr, "writeExistingErr: want=%v, got=%v", test.writeExistingErr, writeExistingErr)
	assert.Equal(t, test.contents, contents)
}

func TestRWFileHandleOpenTests(t *testing.T) {
	for _, cacheMode := range []vfscommon.CacheMode{vfscommon.CacheModeWrites, vfscommon.CacheModeFull} {
		t.Run(cacheMode.String(), func(t *testing.T) {
			opt := vfscommon.DefaultOpt
			opt.CacheMode = cacheMode
			opt.WriteBack = writeBackDelay
			_, vfs := newTestVFSOpt(t, &opt)

			for _, test := range openTests {
				t.Run(test.what, func(t *testing.T) {
					testRWFileHandleOpenTest(t, vfs, &test)
				})
			}
		})
	}
}

// tests mod time on open files
func TestRWFileModTimeWithOpenWriters(t *testing.T) {
	r, vfs, fh := rwHandleCreateWriteOnly(t)
	if !canSetModTime(t, r) {
		t.Skip("can't set mod time")
	}

	mtime := time.Date(2012, time.November, 18, 17, 32, 31, 0, time.UTC)

	_, err := fh.Write([]byte{104, 105})
	require.NoError(t, err)

	err = fh.Node().SetModTime(mtime)
	require.NoError(t, err)

	// Using Flush/Release to mimic mount instead of Close

	err = fh.Flush()
	require.NoError(t, err)

	err = fh.Release()
	require.NoError(t, err)

	info, err := vfs.Stat("file1")
	require.NoError(t, err)

	if r.Fremote.Precision() != fs.ModTimeNotSupported {
		// avoid errors because of timezone differences
		assert.Equal(t, info.ModTime().Unix(), mtime.Unix(), fmt.Sprintf("Time mismatch: %v != %v", info.ModTime(), mtime))
	}

	file1 := fstest.NewItem("file1", "hi", mtime)
	vfs.WaitForWriters(waitForWritersDelay)
	r.CheckRemoteItems(t, file1)
}

func TestRWCacheRename(t *testing.T) {
	opt := vfscommon.DefaultOpt
	opt.CacheMode = vfscommon.CacheModeFull
	opt.WriteBack = writeBackDelay
	r, vfs := newTestVFSOpt(t, &opt)

	if !operations.CanServerSideMove(r.Fremote) {
		t.Skip("skip as can't rename files")
	}

	h, err := vfs.OpenFile("rename_me", os.O_WRONLY|os.O_CREATE, 0777)
	require.NoError(t, err)
	_, err = h.WriteString("hello")
	require.NoError(t, err)
	fh, ok := h.(*RWFileHandle)
	require.True(t, ok)

	err = fh.Sync()
	require.NoError(t, err)
	err = fh.Close()
	require.NoError(t, err)

	assert.True(t, vfs.cache.Exists("rename_me"))

	err = vfs.Rename("rename_me", "i_was_renamed")
	require.NoError(t, err)

	assert.False(t, vfs.cache.Exists("rename_me"))
	assert.True(t, vfs.cache.Exists("i_was_renamed"))
}

repository: rclone/rclone

repo_name: rclone/rclone

gha_language: Go