用C写一个web服务器(二) I/O多路复用之epoll

时间:2022-10-29 09:35:33

thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.45;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:none}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:rgba(232,76,61,0.1)}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:rgba(229,55,38,0.1)}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:rgba(255,209,0,0.12)}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:rgba(230,188,0,0.12)}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle}.form-control{display:block;width:100%;height:42px;padding:6px 12px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control:focus{border-color:#dee6ed;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6)}.form-control:focus{border-color:rgba(25,128,230,0.5);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6}.form-control:-moz-placeholder{color:#d5dfe9}.form-control::-moz-placeholder{color:#d5dfe9;opacity:1}.form-control:-ms-input-placeholder{color:#d5dfe9}.form-control::-webkit-input-placeholder{color:#d5dfe9}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:none}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:21px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:31px;line-height:31px}textarea.input-sm{height:auto}.input-lg{height:48px;padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}select.input-lg{height:48px;line-height:48px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#b89600}.has-warning .form-control{border-color:#b89600;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#856d00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffd61f;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffd61f}.has-warning .input-group-addon{color:#b89600;border-color:#b89600;background-color:rgba(255,209,0,0.12)}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#d82a1a}.has-error .form-control{border-color:#d82a1a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#ab2114;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ed766b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ed766b}.has-error .input-group-addon{color:#d82a1a;border-color:#d82a1a;background-color:rgba(232,76,61,0.1)}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#587ea4}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:28px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:15px;line-height:1.45;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#425e7b;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-primary{color:#425e7b;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#425e7b;background-color:#cad6e2;border-color:rgba(0,97,194,0.05)}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.btn-primary .badge{color:#e4ebf1;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#364d63;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#364d63;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-info{color:rgba(102,128,153,0.35);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:rgba(102,128,153,0.35);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-link{color:#1980e6;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0f4d8a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;background-color:#fff;border:1px solid #ccc;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#dee6ed}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.45;color:#2c3f51;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#2d4053;background-color:rgba(102,128,153,0.04)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#d5dfe9}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.45;color:rgba(129,158,187,0.6)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:48px;padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:48px;line-height:48px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:15px;font-weight:normal;line-height:1;color:#2c3f51;text-align:center;background-color:none;border:1px solid #dee6ed;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:19px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:rgba(102,128,153,0.04)}.nav>li.disabled>a{color:#d5dfe9}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#d5dfe9;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:rgba(102,128,153,0.04);border-color:#1980e6}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid rgba(0,0,0,0)}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.45;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:none;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:none}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:none}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14.5px 15px;font-size:19px;line-height:21px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:4px;margin-bottom:4px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media (min-width:768px){.navbar-form .col-sm-1{width:8.33333333% !important}.navbar-form .col-sm-2{width:16.66666667% !important}.navbar-form .col-sm-3{width:25% !important}.navbar-form .col-sm-4{width:33.33333333% !important}.navbar-form .col-sm-5{width:41.66666667% !important}.navbar-form .col-sm-6{width:50% !important}.navbar-form .col-sm-7{width:58.33333333% !important}.navbar-form .col-sm-8{width:66.66666667% !important}.navbar-form .col-sm-9{width:75% !important}.navbar-form .col-sm-10{width:83.33333333% !important}.navbar-form .col-sm-11{width:91.66666667% !important}.navbar-form .col-sm-12{width:100% !important}}.navbar-form *{float:none}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-btn.btn-sm{margin-top:9.5px;margin-bottom:9.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#e4ebf1;border-color:#cfdae5}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#cfdae5}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#cfdae5}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#cfdae5;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#cfdae5}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.45;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:none}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:19px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:none}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#ebc000}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b89600}.label-danger{background-color:#e63b2b}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c62717}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#1980e6;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:23px;font-weight:200;line-height:2.175;color:inherit;background-color:none}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:67.5px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.45;background-color:none;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#1980e6}.thumbnail .caption{padding:9px;color:#2c3f51}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:rgba(255,209,0,0.12);border-color:rgba(255,209,0,0.24);color:#b89600}.alert-warning hr{border-top-color:rgba(230,188,0,0.24)}.alert-warning .alert-link{color:#856d00}.alert-danger{background-color:rgba(232,76,61,0.1);border-color:rgba(232,76,61,0.15);color:#d82a1a}.alert-danger hr{border-top-color:rgba(229,55,38,0.15)}.alert-danger .alert-link{color:#ab2114}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:13px;line-height:21px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{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:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#f6f7f9;border:1px solid rgba(0,0,0,0)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#eee}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#4b5666}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#2d4053;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#fff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:rgba(255,209,0,0.24)}.panel-warning>.panel-heading{color:#b89600;background-color:rgba(255,209,0,0.12);border-color:rgba(255,209,0,0.24)}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:rgba(255,209,0,0.24)}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:rgba(255,209,0,0.24)}.panel-danger{border-color:rgba(232,76,61,0.15)}.panel-danger>.panel-heading{color:#d82a1a;background-color:rgba(232,76,61,0.1);border-color:rgba(232,76,61,0.15)}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:rgba(232,76,61,0.15)}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:rgba(232,76,61,0.15)}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#2c3f51;text-shadow:0 1px 0 #fff;opacity:.2;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=20);filter:alpha(opacity=20)}.close:hover,.close:focus{color:#2c3f51;text-decoration:none;cursor:pointer;opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid #dee6ed;border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#73808c}.modal-backdrop.fade{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #ebf0f4;min-height:16.45px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.45}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #ebf0f4}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:13px;line-height:1.4;opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.tooltip.in{opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=90);filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:250px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#475160;background-clip:padding-box;border:1px solid #ccc;border:1px solid #dee6ed;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;font-weight:normal;line-height:18px;background-color:rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0);border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:#dee6ed;bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#475160}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:#dee6ed}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#475160}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:#dee6ed;top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#475160}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:#dee6ed}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#475160;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@font-face{font-family:'fontello';src:url('../font/fontello.eot?70892477');src:url('../font/fontello.eot?70892477#iefix') format('embedded-opentype'),url('../font/fontello.woff?70892477') format('woff'),url('../font/fontello.ttf?70892477') format('truetype'),url('../font/fontello.svg?70892477#fontello') format('svg');font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-glass:before{content:'\e800'}.icon-resize-full-1:before{content:'\e801'}.icon-search:before{content:'\e802'}.icon-mail:before{content:'\e803'}.icon-mail-alt:before{content:'\e804'}.icon-heart:before{content:'\e805'}.icon-heart-empty:before{content:'\e806'}.icon-star:before{content:'\e807'}.icon-star-empty:before{content:'\e808'}.icon-star-half:before{content:'\e809'}.icon-star-half-alt:before{content:'\e80a'}.icon-user:before{content:'\e80b'}.icon-users:before{content:'\e80c'}.icon-male:before{content:'\e80d'}.icon-female:before{content:'\e80e'}.icon-video:before{content:'\e80f'}.icon-videocam:before{content:'\e810'}.icon-picture:before{content:'\e811'}.icon-camera:before{content:'\e812'}.icon-camera-alt:before{content:'\e813'}.icon-th-large:before{content:'\e814'}.icon-th:before{content:'\e815'}.icon-th-list:before{content:'\e816'}.icon-ok:before{content:'\e817'}.icon-ok-circled:before{content:'\e818'}.icon-ok-circled2:before{content:'\e819'}.icon-ok-squared:before{content:'\e81a'}.icon-cancel:before{content:'\e81b'}.icon-cancel-circled:before{content:'\e81c'}.icon-cancel-circled2:before{content:'\e81d'}.icon-plus:before{content:'\e81e'}.icon-plus-circled:before{content:'\e81f'}.icon-plus-squared:before{content:'\e820'}.icon-plus-squared-small:before{content:'\e821'}.icon-minus:before{content:'\e822'}.icon-minus-circled:before{content:'\e823'}.icon-minus-squared:before{content:'\e824'}.icon-minus-squared-alt:before{content:'\e825'}.icon-minus-squared-small:before{content:'\e826'}.icon-help:before{content:'\e827'}.icon-help-circled:before{content:'\e828'}.icon-info-circled:before{content:'\e829'}.icon-info:before{content:'\e82a'}.icon-home:before{content:'\e82b'}.icon-link:before{content:'\e82c'}.icon-unlink:before{content:'\e82d'}.icon-link-ext:before{content:'\e82e'}.icon-link-ext-alt:before{content:'\e82f'}.icon-attach:before{content:'\e830'}.icon-lock:before{content:'\e831'}.icon-lock-open:before{content:'\e832'}.icon-lock-open-alt:before{content:'\e833'}.icon-pin:before{content:'\e834'}.icon-eye:before{content:'\e835'}.icon-eye-off:before{content:'\e836'}.icon-tag:before{content:'\e837'}.icon-tags:before{content:'\e838'}.icon-bookmark:before{content:'\e839'}.icon-bookmark-empty:before{content:'\e83a'}.icon-flag:before{content:'\e83b'}.icon-flag-empty:before{content:'\e83c'}.icon-flag-checkered:before{content:'\e83d'}.icon-thumbs-up:before{content:'\e83e'}.icon-thumbs-down:before{content:'\e83f'}.icon-thumbs-up-alt:before{content:'\e840'}.icon-thumbs-down-alt:before{content:'\e841'}.icon-download:before{content:'\e842'}.icon-upload:before{content:'\e843'}.icon-download-cloud:before{content:'\e844'}.icon-upload-cloud:before{content:'\e845'}.icon-reply:before{content:'\e846'}.icon-reply-all:before{content:'\e847'}.icon-forward:before{content:'\e848'}.icon-quote-left:before{content:'\e849'}.icon-quote-right:before{content:'\e84a'}.icon-export-alt:before{content:'\e84b'}.icon-pencil:before{content:'\e84c'}.icon-pencil-squared:before{content:'\e84d'}.icon-edit:before{content:'\e84e'}.icon-print:before{content:'\e84f'}.icon-retweet:before{content:'\e850'}.icon-keyboard:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-comment:before{content:'\e853'}.icon-chat:before{content:'\e854'}.icon-comment-empty:before{content:'\e855'}.icon-chat-empty:before{content:'\e856'}.icon-bell:before{content:'\e857'}.icon-bell-alt:before{content:'\e858'}.icon-attention-alt:before{content:'\e859'}.icon-attention:before{content:'\e85a'}.icon-attention-circled:before{content:'\e85b'}.icon-location:before{content:'\e85c'}.icon-direction:before{content:'\e85d'}.icon-compass:before{content:'\e85e'}.icon-doc:before{content:'\e85f'}.icon-docs:before{content:'\e860'}.icon-doc-text:before{content:'\e861'}.icon-file:before{content:'\e862'}.icon-doc-text-inv:before{content:'\e863'}.icon-folder-empty:before{content:'\e864'}.icon-folder-open-empty:before{content:'\e865'}.icon-box:before{content:'\e866'}.icon-rss:before{content:'\e867'}.icon-rss-squared:before{content:'\e868'}.icon-phone:before{content:'\e869'}.icon-phone-squared:before{content:'\e86a'}.icon-menu:before{content:'\e86b'}.icon-cog:before{content:'\e86c'}.icon-cog-alt:before{content:'\e86d'}.icon-wrench:before{content:'\e86e'}.icon-basket:before{content:'\e86f'}.icon-calendar:before{content:'\e870'}.icon-calendar-empty:before{content:'\e871'}.icon-login:before{content:'\e872'}.icon-logout:before{content:'\e873'}.icon-mic:before{content:'\e874'}.icon-mute:before{content:'\e875'}.icon-volume-off:before{content:'\e876'}.icon-volume-down:before{content:'\e877'}.icon-volume-up:before{content:'\e878'}.icon-headphones:before{content:'\e879'}.icon-clock:before{content:'\e87a'}.icon-lightbulb:before{content:'\e87b'}.icon-block:before{content:'\e87c'}.icon-resize-full-alt:before{content:'\e87d'}.icon-resize-small:before{content:'\e87e'}.icon-resize-vertical:before{content:'\e87f'}.icon-resize-horizontal:before{content:'\e880'}.icon-move:before{content:'\e881'}.icon-zoom-in:before{content:'\e882'}.icon-zoom-out:before{content:'\e883'}.icon-down-circled2:before{content:'\e884'}.icon-up-circled2:before{content:'\e885'}.icon-down-dir:before{content:'\e886'}.icon-up-dir:before{content:'\e887'}.icon-left-dir:before{content:'\e888'}.icon-right-dir:before{content:'\e889'}.icon-down-open:before{content:'\e88a'}.icon-left-open:before{content:'\e88b'}.icon-right-open:before{content:'\e88c'}.icon-up-open:before{content:'\e88d'}.icon-angle-left:before{content:'\e88e'}.icon-angle-right:before{content:'\e88f'}.icon-angle-up:before{content:'\e890'}.icon-angle-down:before{content:'\e891'}.icon-angle-circled-left:before{content:'\e892'}.icon-angle-circled-right:before{content:'\e893'}.icon-angle-circled-up:before{content:'\e894'}.icon-angle-circled-down:before{content:'\e895'}.icon-angle-double-left:before{content:'\e896'}.icon-angle-double-right:before{content:'\e897'}.icon-angle-double-up:before{content:'\e898'}.icon-angle-double-down:before{content:'\e899'}.icon-down:before{content:'\e89a'}.icon-left:before{content:'\e89b'}.icon-right:before{content:'\e89c'}.icon-up:before{content:'\e89d'}.icon-down-big:before{content:'\e89e'}.icon-music:before{content:'\e89f'}.icon-archive:before{content:'\e8a0'}.icon-up-big:before{content:'\e8a1'}.icon-right-hand:before{content:'\e8a2'}.icon-resize-small-1:before{content:'\e8a3'}.icon-cancel-squared:before{content:'\e8a4'}.icon-down-hand:before{content:'\e8a5'}.icon-left-circled:before{content:'\e8a6'}.icon-right-circled:before{content:'\e8a7'}.icon-up-circled:before{content:'\e8a8'}.icon-down-circled:before{content:'\e8a9'}.icon-cw:before{content:'\e8aa'}.icon-ccw:before{content:'\e8ab'}.icon-refresh:before{content:'\e8ac'}.icon-level-up:before{content:'\e8ad'}.icon-level-down:before{content:'\e8ae'}.icon-shuffle:before{content:'\e8af'}.icon-exchange:before{content:'\e8b0'}.icon-collapse:before{content:'\e8b1'}.icon-collapse-top:before{content:'\e8b2'}.icon-expand:before{content:'\e8b3'}.icon-play:before{content:'\e8b4'}.icon-play-circled:before{content:'\e8b5'}.icon-play-circled2:before{content:'\e8b6'}.icon-stop:before{content:'\e8b7'}.icon-pause:before{content:'\e8b8'}.icon-to-end:before{content:'\e8b9'}.icon-to-end-alt:before{content:'\e8ba'}.icon-to-start:before{content:'\e8bb'}.icon-to-start-alt:before{content:'\e8bc'}.icon-fast-fw:before{content:'\e8bd'}.icon-fast-bw:before{content:'\e8be'}.icon-eject:before{content:'\e8bf'}.icon-signal:before{content:'\e8c0'}.icon-award:before{content:'\e8c1'}.icon-desktop:before{content:'\e8c2'}.icon-laptop:before{content:'\e8c3'}.icon-tablet:before{content:'\e8c4'}.icon-mobile:before{content:'\e8c5'}.icon-inbox:before{content:'\e8c6'}.icon-globe:before{content:'\e8c7'}.icon-sun:before{content:'\e8c8'}.icon-cloud:before{content:'\e8c9'}.icon-flash:before{content:'\e8ca'}.icon-moon:before{content:'\e8cb'}.icon-umbrella:before{content:'\e8cc'}.icon-flight:before{content:'\e8cd'}.icon-fighter-jet:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-font:before{content:'\e8d0'}.icon-bold:before{content:'\e8d1'}.icon-italic:before{content:'\e8d2'}.icon-text-height:before{content:'\e8d3'}.icon-text-width:before{content:'\e8d4'}.icon-align-left:before{content:'\e8d5'}.icon-align-center:before{content:'\e8d6'}.icon-align-right:before{content:'\e8d7'}.icon-align-justify:before{content:'\e8d8'}.icon-list:before{content:'\e8d9'}.icon-indent-left:before{content:'\e8da'}.icon-indent-right:before{content:'\e8db'}.icon-list-bullet:before{content:'\e8dc'}.icon-list-numbered:before{content:'\e8dd'}.icon-strike:before{content:'\e8de'}.icon-underline:before{content:'\e8df'}.icon-superscript:before{content:'\e8e0'}.icon-subscript:before{content:'\e8e1'}.icon-table:before{content:'\e8e2'}.icon-columns:before{content:'\e8e3'}.icon-crop:before{content:'\e8e4'}.icon-scissors:before{content:'\e8e5'}.icon-paste:before{content:'\e8e6'}.icon-briefcase:before{content:'\e8e7'}.icon-suitcase:before{content:'\e8e8'}.icon-ellipsis:before{content:'\e8e9'}.icon-ellipsis-vert:before{content:'\e8ea'}.icon-off:before{content:'\e8eb'}.icon-road:before{content:'\e8ec'}.icon-list-alt:before{content:'\e8ed'}.icon-qrcode:before{content:'\e8ee'}.icon-barcode:before{content:'\e8ef'}.icon-book:before{content:'\e8f0'}.icon-ajust:before{content:'\e8f1'}.icon-tint:before{content:'\e8f2'}.icon-check:before{content:'\e8f3'}.icon-check-empty:before{content:'\e8f4'}.icon-circle:before{content:'\e8f5'}.icon-circle-empty:before{content:'\e8f6'}.icon-asterisk:before{content:'\e8f7'}.icon-gift:before{content:'\e8f8'}.icon-fire:before{content:'\e8f9'}.icon-magnet:before{content:'\e8fa'}.icon-ticket:before{content:'\e8fb'}.icon-credit-card:before{content:'\e8fc'}.icon-floppy:before{content:'\e8fd'}.icon-megaphone:before{content:'\e8fe'}.icon-key:before{content:'\e8ff'}.icon-fork:before{content:'\e900'}.icon-rocket:before{content:'\e901'}.icon-bug:before{content:'\e902'}.icon-certificate:before{content:'\e903'}.icon-tasks:before{content:'\e904'}.icon-filter:before{content:'\e905'}.icon-beaker:before{content:'\e906'}.icon-magic:before{content:'\e907'}.icon-truck:before{content:'\e908'}.icon-money:before{content:'\e909'}.icon-euro:before{content:'\e90a'}.icon-pound:before{content:'\e90b'}.icon-dollar:before{content:'\e90c'}.icon-rupee:before{content:'\e90d'}.icon-yen:before{content:'\e90e'}.icon-renminbi:before{content:'\e90f'}.icon-won:before{content:'\e910'}.icon-bitcoin:before{content:'\e911'}.icon-sort:before{content:'\e912'}.icon-sort-down:before{content:'\e913'}.icon-sort-up:before{content:'\e914'}.icon-sort-alt-up:before{content:'\e915'}.icon-sort-alt-down:before{content:'\e916'}.icon-sort-name-up:before{content:'\e917'}.icon-sort-name-down:before{content:'\e918'}.icon-sort-number-up:before{content:'\e919'}.icon-sort-number-down:before{content:'\e91a'}.icon-hammer:before{content:'\e91b'}.icon-gauge:before{content:'\e91c'}.icon-sitemap:before{content:'\e91d'}.icon-spinner:before{content:'\e91e'}.icon-coffee:before{content:'\e91f'}.icon-food:before{content:'\e920'}.icon-beer:before{content:'\e921'}.icon-user-md:before{content:'\e922'}.icon-stethoscope:before{content:'\e923'}.icon-ambulance:before{content:'\e924'}.icon-medkit:before{content:'\e925'}.icon-h-sigh:before{content:'\e926'}.icon-hospital:before{content:'\e927'}.icon-building:before{content:'\e928'}.icon-smile:before{content:'\e929'}.icon-frown:before{content:'\e92a'}.icon-meh:before{content:'\e92b'}.icon-anchor:before{content:'\e92c'}.icon-terminal:before{content:'\e92d'}.icon-eraser:before{content:'\e92e'}.icon-puzzle:before{content:'\e92f'}.icon-shield:before{content:'\e930'}.icon-extinguisher:before{content:'\e931'}.icon-bullseye:before{content:'\e932'}.icon-resize-full:before{content:'\e933'}.icon-target:before{content:'\e934'}.icon-layers:before{content:'\e935'}.icon-chart-bar:before{content:'\e936'}.icon-share:before{content:'\e937'}.icon-hdd:before{content:'\e938'}.icon-trash:before{content:'\e939'}.icon-folder:before{content:'\e93a'}.icon-code:before{content:'\e93b'}.icon-folder-open:before{content:'\e93c'}.icon-left-big:before{content:'\e93d'}.icon-evernote:before{content:'\e93e'}.icon-right-big:before{content:'\e93f'}.icon-spin3:before{content:'\e940'}.icon-spin4:before{content:'\e941'}.icon-spin6:before{content:'\e942'}.icon-arrows-cw:before{content:'\e943'}.icon-resize-normal:before{content:'\e944'}.icon-left-hand:before{content:'\e945'}.icon-evernote-1:before{content:'\e946'}.icon-up-hand:before{content:'\e947'}.icon-file-pdf:before{content:'\e948'}.icon-doc-text-1:before{content:'\e949'}.icon-file-word:before{content:'\e94a'}.icon-file-excel:before{content:'\e94b'}.icon-file-powerpoint:before{content:'\e94c'}.icon-file-image:before{content:'\e94d'}.icon-file-archive:before{content:'\e94e'}.icon-file-audio:before{content:'\e94f'}.icon-file-video:before{content:'\e950'}.icon-file-code:before{content:'\e951'}.icon-doc-1:before{content:'\e952'}.icon-share-1:before{content:'\e953'}.icon-users-1:before{content:'\e954'}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;font-size:15px;line-height:1.45;color:#2c3f51;background-color:none}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#1980e6;text-decoration:none}a:hover,a:focus{color:#0f4d8a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.45;background-color:none;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid rgba(102,128,153,0.1)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:21px;margin-bottom:10.5px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#b89600}.text-warning:hover{color:#856d00}.text-danger{color:#d82a1a}.text-danger:hover{color:#ab2114}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid none}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.45}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;border-left:5px solid rgba(102,128,153,0.075)}blockquote p{font-size:18.75px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.45;color:#999}blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid rgba(102,128,153,0.075);border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:21px;font-style:normal;line-height:1.45}code,kbd,pre,samp{font-family:"Source Code Pro",monospace}code{padding:2px 4px;font-size:90%;color:#2c3f51;background-color:rgba(102,128,153,0.075);white-space:nowrap;border-radius:4px}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.45;word-break:break-all;word-wrap:break-word;color:#333;background-color:rgba(102,128,153,0.05);border:1px solid rgba(102,128,153,0.075);border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.pln{color:#000}.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:#f00}pre.prettyprint{padding:0;border:0}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}@font-face{font-family:'fontello';src:url('../font/fontello.svg?1482341078908#fontello') format('svg'),url('../font/fontello.woff?1482341078908') format('woff');font-weight:normal;font-style:normal}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:300;src:local('Source Sans Pro Light'),local('SourceSansPro-Light'),url("../font/SourceSansPro-Light-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;src:local('Source Sans Pro'),local('SourceSansPro'),url("../font/SourceSansPro-Regular-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:700;src:local('Source Sans Pro Bold'),local('SourceSansPro-Bold'),url("../font/SourceSansPro-Bold-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:italic;font-weight:300;src:local('Source Sans Pro Light Italic'),local('SourceSansProLight-Italic'),url("../font/SourceSansPro-LightItalic-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:italic;font-weight:400;src:local('Source Sans Pro Italic'),local('SourceSansPro-Italic'),url("../font/SourceSansPro-Italic-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:italic;font-weight:700;src:local('Source Sans Pro Bold Italic'),local('SourceSansPro-BoldItalic'),url("../font/SourceSansPro-BoldItalic-webfont.woff") format('woff')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:local('Source Code Pro'),local('SourceCodePro-Regular'),url("../font/SourceCodePro-Regular-webfont.woff") format('woff')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:700;src:local('Source Code Pro Bold'),local('SourceCodePro-Bold'),url("../font/SourceCodePro-Bold-webfont.woff") format('woff')}.container{margin-bottom:180px;text-align:justify}a code{color:inherit}h1{font-size:2.6em}h2{font-size:2.15em}h3{font-size:1.7em}h4{font-size:1.25em}h5{font-size:1em}h6{font-size:.85em}h1,h2,h3,h4,h5,h6{margin:1.8em 0;text-align:start}pre{word-break:break-word}p,pre,pre.prettyprint,blockquote{margin:0 0 1.1em}hr{margin:2em 0}img{max-width:100%}.sequence-diagram,.flow-chart{text-align:center;margin-bottom:1.1em}.sequence-diagram text,.flow-chart text{font-size:15px !important;font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif !important}.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"]{stroke:#2c3f51}.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"]{stroke:none}.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"]{fill:#2c3f51}code,pre{font-family:"Source Code Pro",monospace;font-size:.9em}code{white-space:normal}pre,pre.prettyprint{text-align:start;border:0;border-radius:5px;word-break:break-all}pre code,pre.prettyprint code{padding:1.3em 2em !important}pre.prettyprint.with-line-number{position:relative}pre.prettyprint.with-line-number code{padding-left:3.3em !important}pre.prettyprint.with-line-number .hljs-comment.line-number{min-width:2.2em;display:inline-block;text-align:right;opacity:.8;position:absolute;left:.3em}.hljs-comment.line-number{display:none}dt,dd{margin-top:5px;margin-bottom:5px}dd{margin-left:40px}table{margin-bottom:20px}table th,table td{padding:8px;line-height:20px;vertical-align:top;border-top:1px solid #ddd}table th{font-weight:bold}table thead th{vertical-align:bottom}table caption+thead tr:first-child th,table caption+thead tr:first-child td,table colgroup+thead tr:first-child th,table colgroup+thead tr:first-child td,table thead:first-child tr:first-child th,table thead:first-child tr:first-child td{border-top:0}table tbody+tbody{border-top:2px solid #ddd}blockquote{border-left-width:10px;background-color:rgba(102,128,153,0.05);border-top-right-radius:5px;border-bottom-right-radius:5px;padding:15px 20px}blockquote p{margin-bottom:1.1em;font-size:1em;line-height:1.45}blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}ul,ol{margin-bottom:1.1em}ul ul,ol ul,ul ol,ol ol{margin-bottom:1.1em}kbd{padding:.1em .6em;border:1px solid rgba(44,63,81,0.25);-webkit-box-shadow:0 1px 0 rgba(44,63,81,0.25);box-shadow:0 1px 0 rgba(44,63,81,0.25);font-size:.7em;font-family:sans-serif;background-color:#fff;color:#333;border-radius:3px;display:inline-block;margin:0 .1em;white-space:nowrap}.toc ul{list-style-type:none;margin-bottom:15px}.footnote{vertical-align:top;position:relative;top:-0.5em;font-size:.8em}li.checklist-item{list-style:none;margin-left:-1.2em}.checklist{margin-bottom:1.1em}.checklist-item>.checklist{margin-left:1.4em}li>p:last-child{margin-bottom:0}[class^="icon-"],[class*=" icon-"]{display:inline-block;line-height:1.35em;vertical-align:middle;background-repeat:no-repeat}.icon-code{font-size:83%;line-height:1.65em}.icon-code:before{margin-left:.1em;margin-right:.6em}.icon-trash{line-height:1.5em}.icon-folder-open{font-size:80%}.icon-folder-open:before{margin-right:.6em}.icon-chart-bar{font-size:95%}.icon-chart-bar:before{margin-left:.3em;margin-right:.3em}.icon-comment-alt,.icon-chat{font-size:92%}.icon-comment-alt:before,.icon-chat:before{margin-left:.1em;margin-right:.4em}.icon-file{font-size:104%;margin-left:0;margin-right:0}.icon-link{font-size:104%}[class^="icon-provider-"],[class*=" icon-provider-"]{background-image:url("../img/icons.png");width:18px;height:16px;margin-top:-2px;margin-left:2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){[class^="icon-provider-"],[class*=" icon-provider-"]{background-image:url("../img/icons2x.png");background-size:256px 16px}}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){[class^="icon-provider-"],[class*=" icon-provider-"]{background-image:url("../img/icons2x.png");background-size:256px 16px}}.icon-provider-stackedit{background-position:0 0}.icon-provider-gdrive,.icon-provider-gdrivesec,.icon-provider-gdriveter{background-position:-18px 0}.icon-provider-dropbox{background-position:-37px 0}.icon-provider-github,.icon-provider-gist{background-position:-54px 0}.icon-provider-blogger,.icon-provider-bloggerpage{background-position:-72px 0}.icon-provider-tumblr{background-position:-90px 0}.icon-provider-wordpress{background-position:-108px 0}.icon-provider-ssh{background-position:-126px 0}.icon-provider-gplus{background-position:-144px 0}.icon-provider-couchdb{background-position:-162px 0}body.rtl #wmd-input,body.rtl #preview-contents,body.rtl .input-file-title,body.rtl .search-bar input,body.rtl .modal-document-manager input,body.rtl .comments-popover,body.rtl .container{direction:rtl}.MathJax_SVG_Display{text-align:center;margin:1em 0;position:relative;display:block !important;text-indent:0;max-width:none;max-height:none;min-width:0;min-height:0;width:100%}.MathJax_SVG{display:inline;font-style:normal;font-weight:normal;line-height:normal;font-size:100%;font-size-adjust:none;text-indent:0;text-align:left;text-transform:none;letter-spacing:normal;word-spacing:normal;word-wrap:normal;white-space:nowrap;float:none;direction:ltr;max-width:none;max-height:none;min-width:0;min-height:0;border:0;padding:0;margin:0;vertical-align:middle}.hljs-light .hljs{display:block;padding:.5em;background-color:#f0f0f0}.hljs-light .hljs,.hljs-light .hljs-subst,.hljs-light .hljs-tag .hljs-title,.hljs-light .lisp .hljs-title,.hljs-light .clojure .hljs-built_in,.hljs-light .nginx .hljs-title{color:#000}.hljs-light .hljs-string,.hljs-light .hljs-title,.hljs-light .hljs-constant,.hljs-light .hljs-parent,.hljs-light .hljs-tag .hljs-value,.hljs-light .hljs-rules .hljs-value,.hljs-light .hljs-rules .hljs-value .hljs-number,.hljs-light .hljs-preprocessor,.hljs-light .hljs-pragma,.hljs-light .haml .hljs-symbol,.hljs-light .ruby .hljs-symbol,.hljs-light .ruby .hljs-symbol .hljs-string,.hljs-light .hljs-aggregate,.hljs-light .hljs-template_tag,.hljs-light .django .hljs-variable,.hljs-light .smalltalk .hljs-class,.hljs-light .hljs-addition,.hljs-light .hljs-flow,.hljs-light .hljs-stream,.hljs-light .bash .hljs-variable,.hljs-light .apache .hljs-tag,.hljs-light .apache .hljs-cbracket,.hljs-light .tex .hljs-command,.hljs-light .tex .hljs-special,.hljs-light .erlang_repl .hljs-function_or_atom,.hljs-light .asciidoc .hljs-header,.hljs-light .markdown .hljs-header,.hljs-light .coffeescript .hljs-attribute{color:#800}.hljs-light .smartquote,.hljs-light .hljs-comment,.hljs-light .hljs-annotation,.hljs-light .hljs-template_comment,.hljs-light .diff .hljs-header,.hljs-light .hljs-chunk,.hljs-light .asciidoc .hljs-blockquote,.hljs-light .markdown .hljs-blockquote{color:#888}.hljs-light .hljs-number,.hljs-light .hljs-date,.hljs-light .hljs-regexp,.hljs-light .hljs-literal,.hljs-light .hljs-hexcolor,.hljs-light .smalltalk .hljs-symbol,.hljs-light .smalltalk .hljs-char,.hljs-light .go .hljs-constant,.hljs-light .hljs-change,.hljs-light .lasso .hljs-variable,.hljs-light .makefile .hljs-variable,.hljs-light .asciidoc .hljs-bullet,.hljs-light .markdown .hljs-bullet,.hljs-light .asciidoc .hljs-link_url,.hljs-light .markdown .hljs-link_url{color:#080}.hljs-light .hljs-label,.hljs-light .hljs-javadoc,.hljs-light .ruby .hljs-string,.hljs-light .hljs-decorator,.hljs-light .hljs-filter .hljs-argument,.hljs-light .hljs-localvars,.hljs-light .hljs-array,.hljs-light .hljs-attr_selector,.hljs-light .hljs-important,.hljs-light .hljs-pseudo,.hljs-light .hljs-pi,.hljs-light .haml .hljs-bullet,.hljs-light .hljs-doctype,.hljs-light .hljs-deletion,.hljs-light .hljs-envvar,.hljs-light .hljs-shebang,.hljs-light .apache .hljs-sqbracket,.hljs-light .nginx .hljs-built_in,.hljs-light .tex .hljs-formula,.hljs-light .erlang_repl .hljs-reserved,.hljs-light .hljs-prompt,.hljs-light .asciidoc .hljs-link_label,.hljs-light .markdown .hljs-link_label,.hljs-light .vhdl .hljs-attribute,.hljs-light .clojure .hljs-attribute,.hljs-light .asciidoc .hljs-attribute,.hljs-light .lasso .hljs-attribute,.hljs-light .coffeescript .hljs-property,.hljs-light .hljs-phony{color:#88f}.hljs-light .hljs-keyword,.hljs-light .hljs-id,.hljs-light .hljs-title,.hljs-light .hljs-built_in,.hljs-light .hljs-aggregate,.hljs-light .css .hljs-tag,.hljs-light .hljs-javadoctag,.hljs-light .hljs-phpdoc,.hljs-light .hljs-yardoctag,.hljs-light .smalltalk .hljs-class,.hljs-light .hljs-winutils,.hljs-light .bash .hljs-variable,.hljs-light .apache .hljs-tag,.hljs-light .go .hljs-typename,.hljs-light .tex .hljs-command,.hljs-light .asciidoc .hljs-strong,.hljs-light .markdown .hljs-strong,.hljs-light .hljs-request,.hljs-light .hljs-status{font-weight:bold}.hljs-light .asciidoc .hljs-emphasis,.hljs-light .markdown .hljs-emphasis{font-style:italic}.hljs-light .nginx .hljs-built_in{font-weight:normal}.hljs-light .coffeescript .javascript,.hljs-light .javascript .xml,.hljs-light .lasso .markup,.hljs-light .tex .hljs-formula,.hljs-light .xml .javascript,.hljs-light .xml .vbscript,.hljs-light .xml .css,.hljs-light .xml .hljs-cdata{opacity:.5}.hljs-dark{background:#f6f6f6}.hljs-dark .hljs{display:block;padding:.5em;background:#23241f}.hljs-dark .hljs,.hljs-dark .hljs-tag,.hljs-dark .css .hljs-rules,.hljs-dark .css .hljs-value,.hljs-dark .css .hljs-function .hljs-preprocessor,.hljs-dark .hljs-pragma{color:#f8f8f2}.hljs-dark .hljs-strongemphasis,.hljs-dark .hljs-strong,.hljs-dark .hljs-emphasis{color:#a8a8a2}.hljs-dark .hljs-bullet,.hljs-dark .hljs-blockquote,.hljs-dark .hljs-horizontal_rule,.hljs-dark .hljs-number,.hljs-dark .hljs-regexp,.hljs-dark .alias .hljs-keyword,.hljs-dark .hljs-literal,.hljs-dark .hljs-hexcolor{color:#ae81ff}.hljs-dark .hljs-tag .hljs-value,.hljs-dark .hljs-code,.hljs-dark .hljs-title,.hljs-dark .css .hljs-class,.hljs-dark .hljs-class .hljs-title:last-child{color:#a6e22e}.hljs-dark .hljs-link_url{font-size:80%}.hljs-dark .hljs-strong,.hljs-dark .hljs-strongemphasis{font-weight:bold}.hljs-dark .hljs-emphasis,.hljs-dark .hljs-strongemphasis,.hljs-dark .hljs-class .hljs-title:last-child{font-style:italic}.hljs-dark .hljs-keyword,.hljs-dark .hljs-function,.hljs-dark .hljs-change,.hljs-dark .hljs-winutils,.hljs-dark .hljs-flow,.hljs-dark .lisp .hljs-title,.hljs-dark .clojure .hljs-built_in,.hljs-dark .nginx .hljs-title,.hljs-dark .tex .hljs-special,.hljs-dark .hljs-header,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-symbol .hljs-string,.hljs-dark .hljs-tag .hljs-title,.hljs-dark .hljs-value,.hljs-dark .alias .hljs-keyword:first-child,.hljs-dark .css .hljs-tag,.hljs-dark .css .unit,.hljs-dark .css .hljs-important{color:#f92672}.hljs-dark .hljs-function .hljs-keyword,.hljs-dark .hljs-class .hljs-keyword:first-child,.hljs-dark .hljs-constant,.hljs-dark .css .hljs-attribute{color:#66d9ef}.hljs-dark .hljs-variable,.hljs-dark .hljs-params,.hljs-dark .hljs-class .hljs-title{color:#f8f8f2}.hljs-dark .hljs-string,.hljs-dark .css .hljs-id,.hljs-dark .hljs-subst,.hljs-dark .haskell .hljs-type,.hljs-dark .ruby .hljs-class .hljs-parent,.hljs-dark .hljs-built_in,.hljs-dark .sql .hljs-aggregate,.hljs-dark .django .hljs-template_tag,.hljs-dark .django .hljs-variable,.hljs-dark .smalltalk .hljs-class,.hljs-dark .django .hljs-filter .hljs-argument,.hljs-dark .smalltalk .hljs-localvars,.hljs-dark .smalltalk .hljs-array,.hljs-dark .hljs-attr_selector,.hljs-dark .hljs-pseudo,.hljs-dark .hljs-addition,.hljs-dark .hljs-stream,.hljs-dark .hljs-envvar,.hljs-dark .apache .hljs-tag,.hljs-dark .apache .hljs-cbracket,.hljs-dark .tex .hljs-command,.hljs-dark .hljs-prompt,.hljs-dark .hljs-link_label,.hljs-dark .hljs-link_url{color:#e6db74}.hljs-dark .hljs-comment,.hljs-dark .hljs-javadoc,.hljs-dark .java .hljs-annotation,.hljs-dark .python .hljs-decorator,.hljs-dark .hljs-template_comment,.hljs-dark .hljs-pi,.hljs-dark .hljs-doctype,.hljs-dark .hljs-deletion,.hljs-dark .hljs-shebang,.hljs-dark .apache .hljs-sqbracket,.hljs-dark .tex .hljs-formula{color:#75715e}.hljs-dark .coffeescript .javascript,.hljs-dark .javascript .xml,.hljs-dark .tex .hljs-formula,.hljs-dark .xml .javascript,.hljs-dark .xml .vbscript,.hljs-dark .xml .css,.hljs-dark .xml .hljs-cdata,.hljs-dark .xml .php,.hljs-dark .php .xml{opacity:.5}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}h1,h2,h3,h4,h5,h6{font-weight:bold;margin:1.2em 0 .6em 0}blockquote h1,blockquote h2,blockquote h3,blockquote h4,blockquote h5,blockquote h6{font-weight:bold;margin:.6em 0}.note-tags{color:rgba(44,63,81,0.3)}.note-tags code{color:rgba(44,63,81,0.5);background:rgba(102,128,153,0.075);border-radius:0;padding:2px 5px}.note-tags code:empty{display:none}.note-tags .notebook{background:rgba(44,63,81,0.3);color:#fff;margin-right:6px}table th,table td,table thead:first-child tr:first-child th{padding:.5em;border:1px solid #ddd;line-height:1.5}.note-content{line-height:1.5;color:#2c3f51}.note-content div,.note-content dl,.note-content dt,.note-content em,.note-content font,.note-content h3,.note-content h4,.note-content h5,.note-content h6,.note-content hr,.note-content i,.note-content ins,.note-content kbd,.note-content li,.note-content map,.note-content ol,.note-content p,.note-content pre,.note-content q,.note-content s,.note-content samp,.note-content small,.note-content span,.note-content strike,.note-content strong,.note-content sub,.note-content sup,.note-content table,.note-content tbody,.note-content td,.note-content tfoot,.note-content th,.note-content thead,.note-content tr,.note-content tt,.note-content u,.note-content ul{line-height:1.6}.image-broken-replacement{text-align:center;font-style:italic;padding:8px;border-radius:5px;color:rgba(102,128,153,0.6);background-color:rgba(102,128,153,0.075)}th[align='center']{text-align:center}th[align='right']{text-align:right}.image-caption{font-size:.86em;margin-top:.6em;margin-bottom:0}.alertify,.alertify-show,.alertify-log{-webkit-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-moz-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-ms-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-o-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);transition:all 500ms cubic-bezier(.175, .885, .32, 1.275)}.alertify-hide{-webkit-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-moz-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-ms-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-o-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);transition:all 250ms cubic-bezier(.6, -0.28, .735, .045)}.alertify-log-hide{-webkit-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-moz-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-ms-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-o-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);transition:all 500ms cubic-bezier(.6, -0.28, .735, .045)}.alertify-cover{position:fixed;z-index:99999;top:0;right:0;bottom:0;left:0;background-color:#fff;filter:alpha(opacity=0);opacity:0}.alertify-cover-hidden{display:none}.alertify{position:fixed;z-index:99999;top:50px;left:50%;width:550px;margin-left:-275px;opacity:1}.alertify-hidden{opacity:0;display:none}:root *>.alertify-hidden{display:block;visibility:hidden}.alertify-logs{position:fixed;z-index:5000;bottom:10px;right:10px;width:300px}.alertify-logs-hidden{display:none}.alertify-log{display:block;margin-top:10px;position:relative;right:-300px;opacity:0}.alertify-log-show{right:0;opacity:1}.alertify-log-hide{-webkit-transform:translate(300px, 0);-moz-transform:translate(300px, 0);-ms-transform:translate(300px, 0);-o-transform:translate(300px, 0);transform:translate(300px, 0);opacity:0}.alertify-dialog{padding:25px}.alertify-resetFocus{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.alertify-inner{text-align:center}.alertify-text{margin-bottom:15px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:100%}.alertify-isHidden{display:none}@media only screen and (max-width:680px){.alertify,.alertify-logs{width:90%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.alertify{left:5%;margin:0}}.alertify,.alertify-log{font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif}.alertify{background:#fff;border:1px solid #dee6ed;border-radius:6px;width:398px;margin-left:-200px;-webkit-background-clip:padding;-moz-background-clip:padding;background-clip:padding-box}.alertify-dialog{padding:0}.alertify-inner{text-align:left}.alertify-message{padding:15px;margin:0}.alertify-text-wrapper{padding:0 15px}.alertify-text{display:block;width:100%;height:42px;padding:6px 12px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.alertify-text:focus:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.alertify-text:focus:focus{border-color:#dee6ed;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6)}.alertify-text:focus:focus{border-color:rgba(25,128,230,0.5);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6}.alertify-buttons{padding:14px 15px 15px;background:#f6f7f9;border-top:1px solid #ebf0f4;text-align:right;border-radius:0 0 6px 6px}.alertify-button{margin-left:10px}.alertify-button-cancel,.alertify-button-ok{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:15px;line-height:1.45;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.alertify-button-cancel:focus,.alertify-button-ok:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.alertify-button-cancel:hover,.alertify-button-ok:hover,.alertify-button-cancel:focus,.alertify-button-ok:focus{color:#425e7b;text-decoration:none}.alertify-button-cancel:active,.alertify-button-ok:active,.alertify-button-cancel.active,.alertify-button-ok.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.alertify-button-cancel{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel:hover,.alertify-button-cancel:focus,.alertify-button-cancel:active,.alertify-button-cancel.active,.open .dropdown-toggle.alertify-button-cancel{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel:active,.alertify-button-cancel.active,.open .dropdown-toggle.alertify-button-cancel{background-image:none}.alertify-button-cancel.disabled,.alertify-button-cancel[disabled],fieldset[disabled] .alertify-button-cancel,.alertify-button-cancel.disabled:hover,.alertify-button-cancel[disabled]:hover,fieldset[disabled] .alertify-button-cancel:hover,.alertify-button-cancel.disabled:focus,.alertify-button-cancel[disabled]:focus,fieldset[disabled] .alertify-button-cancel:focus,.alertify-button-cancel.disabled:active,.alertify-button-cancel[disabled]:active,fieldset[disabled] .alertify-button-cancel:active,.alertify-button-cancel.disabled.active,.alertify-button-cancel[disabled].active,fieldset[disabled] .alertify-button-cancel.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel .badge{color:rgba(0,0,0,0);background-color:#fff}.alertify-button-ok{color:#425e7b;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.alertify-button-ok:hover,.alertify-button-ok:focus,.alertify-button-ok:active,.alertify-button-ok.active,.open .dropdown-toggle.alertify-button-ok{color:#425e7b;background-color:#cad6e2;border-color:rgba(0,97,194,0.05)}.alertify-button-ok:active,.alertify-button-ok.active,.open .dropdown-toggle.alertify-button-ok{background-image:none}.alertify-button-ok.disabled,.alertify-button-ok[disabled],fieldset[disabled] .alertify-button-ok,.alertify-button-ok.disabled:hover,.alertify-button-ok[disabled]:hover,fieldset[disabled] .alertify-button-ok:hover,.alertify-button-ok.disabled:focus,.alertify-button-ok[disabled]:focus,fieldset[disabled] .alertify-button-ok:focus,.alertify-button-ok.disabled:active,.alertify-button-ok[disabled]:active,fieldset[disabled] .alertify-button-ok:active,.alertify-button-ok.disabled.active,.alertify-button-ok[disabled].active,fieldset[disabled] .alertify-button-ok.active{background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.alertify-button-ok .badge{color:#e4ebf1;background-color:#fff}.alertify-log{background:#d9edf7;padding:8px 14px;border-radius:4px;color:#3a8abf;text-shadow:0 1px 0 rgba(255,255,255,0.5);border:1px solid #bce8f1}.alertify-log-error{color:#b94a48;background:#f2dede;border:1px solid #eed3d7}.alertify-log-success{color:#468847;background:#dff0d8;border:1px solid #d6e9c6}.tour-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000;opacity:.8}.tour-step-backdrop{position:relative;z-index:1031;background:inherit}.tour-step-background{position:absolute;z-index:1030;background:inherit;border-radius:6px}.popover[class*="tour-"]{z-index:1030}.popover[class*="tour-"] .popover-navigation{padding:9px 14px}.popover[class*="tour-"] .popover-navigation *[data-role=end]{float:right}.popover[class*="tour-"] .popover-navigation *[data-role=prev],.popover[class*="tour-"] .popover-navigation *[data-role=next],.popover[class*="tour-"] .popover-navigation *[data-role=end]{cursor:pointer}.popover[class*="tour-"] .popover-navigation *[data-role=prev].disabled,.popover[class*="tour-"] .popover-navigation *[data-role=next].disabled,.popover[class*="tour-"] .popover-navigation *[data-role=end].disabled{cursor:default}.popover[class*="tour-"].orphan{position:fixed;margin-top:0}.popover[class*="tour-"].orphan .arrow{display:none}div.jGrowl{z-index:9999;color:#fff;font-size:12px}div.jGrowl{position:absolute}body>div.jGrowl{position:fixed}div.jGrowl.top-left{left:0;top:0}div.jGrowl.top-right{right:0;top:0}div.jGrowl.bottom-left{left:0;bottom:0}div.jGrowl.bottom-right{right:0;bottom:0}div.jGrowl.center{top:0;width:50%;left:25%}div.center div.jGrowl-notification,div.center div.jGrowl-closer{margin-left:auto;margin-right:auto}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:#000;zoom:1;width:235px;padding:10px;margin-top:5px;margin-bottom:5px;font-family:Tahoma,Arial,Helvetica,sans-serif;font-size:1em;text-align:left;display:none;-moz-border-radius:5px;-webkit-border-radius:5px}div.jGrowl div.jGrowl-notification{min-height:40px}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{margin:10px}div.jGrowl div.jGrowl-notification div.jGrowl-header{font-weight:bold;font-size:.85em}div.jGrowl div.jGrowl-notification div.jGrowl-close{z-index:99;float:right;font-weight:bold;font-size:1em;cursor:pointer}div.jGrowl div.jGrowl-closer{padding-top:4px;padding-bottom:4px;cursor:pointer;font-size:.9em;font-weight:bold;text-align:center}@media print{div.jGrowl{display:none}}.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:30px;bottom:10px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{margin:0 0 6px;padding:8px;padding-left:50px;min-width:200px;box-shadow:none;border-radius:15px}.toast{background-image:none !important}.toast:before{position:fixed;font-family:fontello;font-size:24px;line-height:22px;float:left;padding-right:.5em;margin:auto .5em auto -1.5em}.toast-warning:before{content:"\e858"}.toast-error:before{content:"\e81a"}.toast-info:before{content:"\e828"}.toast-success:before{content:"\e816"}.toast-wait:before{content:"\e879"}.toast{border:2px solid #000;color:#030303;background-color:rgba(120,120,120,0.9)}.toast-success{border:2px solid #499249;color:#51a351;background-color:rgba(234,245,234,0.9)}.toast-error{border:2px solid #a9302a;color:#bd362f;background-color:rgba(247,225,223,0.9)}.toast-info{border:2px solid #2a85a0;color:#2f96b4;background-color:rgba(217,239,245,0.9)}.toast-warning{border:2px solid #b9751d;color:#cf8321;background-color:rgba(250,239,224,0.9)}.toast-wait{border:none;padding:3px 16px;color:#fff;font-size:12px;background:none;margin:0;width:auto;min-width:initial;min-width:auto;position:relative}.toast-wait .toast-message{position:relative}.toast-wait:before{content:'';background:#ed1d70;display:block;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;-webkit-animation:2s loadingBefore infinite ease-in-out;-ms-animation:2s loadingBefore infinite ease-in-out;-moz-animation:2s loadingBefore infinite ease-in-out}@-webkit-keyframes loadingBefore{0%{-webkit-transform:translateX(-14px)}50%{-webkit-transform:translateX(14px);opacity:.6}100%{-webkit-transform:translateX(-14px)}}@-moz-keyframes loadingBefore{0%{-moz-transform:translateX(-14px)}50%{-moz-transform:translateX(14px);opacity:.6}100%{-moz-transform:translateX(-14px)}}@-ms-keyframes loadingBefore{0%{-ms-transform:translateX(-14px)}50%{-ms-transform:translateX(14px);opacity:.6}100%{-ms-transform:translateX(-14px)}}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}body{tab-size:4;text-align:start}*{outline:none !important}.working{cursor:progress}.dragging{cursor:move !important}.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.dropdown-menu,.modal-content,.panel-content,.search-bar,.popover,.find-replace,.alertify{-webkit-box-shadow:0 4px 16px rgba(0,0,0,0.225);box-shadow:0 4px 16px rgba(0,0,0,0.225)}.dropdown-menu>li>a{padding:5px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{border-color:#475160}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{border-color:transparent}.collapsed>.icon-up-dir:before{content:'\e94d'}.modal.fade .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-content{background-color:#f6f7f9}.modal-body{background-color:#fff;padding-bottom:30px}.modal-footer{margin-top:0}.modal-iframe{display:block;margin:30px auto 0;z-index:1040;border-radius:0}a{-webkit-transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s;transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s}.nav-pills>li>a{border:1px solid rgba(0,0,0,0)}.nav-pills>li>a:hover,.nav-pills>li>a:focus{color:#036;border-color:#475160}.nav-pills>li.open>a .caret,.nav-pills>li>a:hover .caret,.nav-pills>li>a:focus .caret{border-top-color:#036;border-bottom-color:#036}.nav-pills>li.disabled>a:hover,.nav-pills>li.disabled>a:focus{border-color:rgba(0,0,0,0)}.nav-pills>li.open>a,.nav-pills>li.open>a:hover,.nav-pills>li.open>a:focus{color:#036;border-color:#475160}.list-group-item{padding:10px 15px;border-left-width:0;border-right-width:0;margin-bottom:0}.list-group .list-group-item{border-radius:0}a.list-group-item:hover,a.list-group-item:focus{color:#036;border-color:#475160}.list-group-item .checkbox{float:right;margin:0;padding:0;cursor:pointer}.list-group-item .checkbox input{cursor:pointer;margin:0 16px;height:38px}.form-group{margin-bottom:1px;padding:5px}.text-danger:hover{color:#d82a1a}.bring-to-front{z-index:1050 !important}.dialog-header-message{position:absolute;top:12px;right:55px;font-weight:bold}.btn{padding:8px 11px;-webkit-transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s;transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s}.btn-default:hover,.alertify-button-cancel:hover,.btn-default:focus,.alertify-button-cancel:focus,.btn-default:active,.alertify-button-cancel:active,.open .btn-default.dropdown-toggle,.open .alertify-button-cancel.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.1);background-color:rgba(102,128,153,0.04) !important}.btn-primary:hover,.alertify-button-ok:hover,.btn-primary:focus,.alertify-button-ok:focus,.btn-primary:active,.alertify-button-ok:active,.open .btn-primary.dropdown-toggle,.open .alertify-button-ok.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.1);background-color:#dae3eb !important}.btn-success:hover,.btn-success:focus,.btn-success:active,.open .btn-success.dropdown-toggle{color:#036 !important;border-color:rgba(0,128,255,0.1);background-color:rgba(89,128,166,0.05) !important}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.info-tooltip,.info-tooltip .btn-info,.open .btn-info.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.08);background-color:#f0f2f5 !important}.btn-link:hover{text-decoration:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0}.btn-group>.btn+.dropdown-toggle{padding-right:11px;padding-left:11px}.form-control{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025)}@media (min-width:768px){.form-inline .col-sm-1{width:8.33333333% !important}.form-inline .col-sm-2{width:16.66666667% !important}.form-inline .col-sm-3{width:25% !important}.form-inline .col-sm-4{width:33.33333333% !important}.form-inline .col-sm-5{width:41.66666667% !important}.form-inline .col-sm-6{width:50% !important}.form-inline .col-sm-7{width:58.33333333% !important}.form-inline .col-sm-8{width:66.66666667% !important}.form-inline .col-sm-9{width:75% !important}.form-inline .col-sm-10{width:83.33333333% !important}.form-inline .col-sm-11{width:91.66666667% !important}.form-inline .col-sm-12{width:100% !important}}.form-inline *{float:none}.form-control.error{border-color:#e84c3d;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 8px #e84c3d;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 8px #e84c3d}.help-block{font-size:12px}.input-group-addon{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025)}a.input-group-addon{color:#1980e6}.input-group-btn .btn i{font-size:110%}.input-group-btn:first-child .btn{margin-right:6px}.input-group-btn:last-child .btn{margin-left:6px}.navbar{position:absolute;top:0;left:0;width:100%;padding:0;border:0;border-top:1px solid rgba(0,128,255,0.1);border-bottom:1px solid rgba(0,128,255,0.1);border-radius:0;z-index:20}.navbar .left-space,.navbar .right-space{width:25px;height:38px}.navbar .nav{float:left;margin:5px 9px;height:38px}.navbar .nav>li{display:inline-block}.navbar .nav.pull-right{float:right}.navbar .nav.pull-right>li>.dropdown-menu{right:0;left:auto}.navbar .nav.pull-right>li>.dropdown-menu .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}.navbar .btn{height:38px;padding:6px 8px}.navbar .btn-group>.btn.disabled *,.navbar .btn-group>.btn.blocked *,.navbar .btn-group>.btn[disabled] *{color:rgba(54,77,99,0.3)}.navbar .button-open-discussion.some{color:#e0b800 !important}.navbar .button-open-discussion.replied{color:#e74434 !important}.navbar .file-title-navbar{display:inline-block;vertical-align:middle;padding:1px 15px;font-size:1.5em;line-height:1.45em;font-weight:200;overflow:hidden;white-space:nowrap}.navbar .file-title-navbar a i{-webkit-transition:all ease-in-out .15s;transition:all ease-in-out .15s}.navbar .file-title-navbar a .icon-link-ext-alt{color:transparent;position:relative;font-size:12px;top:-12px;right:6px;width:0}.navbar .file-title-navbar a:hover [class^="icon-provider-"],.navbar .file-title-navbar a:hover [class*=" icon-provider-"]{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.navbar .file-title-navbar a:hover .icon-link-ext-alt{color:#036}.navbar .input-file-title-container{display:inline-block;vertical-align:middle}.navbar .input-file-title-container .input-file-title{width:400px;font-size:16px;height:38px}.navbar .working-indicator{display:inline-block;vertical-align:middle;overflow:hidden;height:38px;width:60px;padding-top:8px}.navbar .working-indicator .bar{display:inline-block;width:14px;height:6px;border-radius:1px;margin:0 2px;opacity:.25;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=25);filter:alpha(opacity=25);background-color:rgba(54,77,99,0.75)}.navbar .offline-status>div{display:inline-block;vertical-align:middle;height:38px;padding:9px 10px}.navbar .buttons-dropdown>.nav{margin-left:0;margin-right:0}.navbar div.dropdown-menu{top:initial;padding:5px;margin:10px}.menu-panel,.document-panel{height:100%;z-index:30;overflow:initial}.menu-panel .toggle-button,.document-panel .toggle-button{background-color:#fff;height:38px;border-radius:8px;position:absolute;margin-top:6px;-webkit-transition:border-width ease-in-out .15s, left ease-in-out 0.15s, right ease-in-out 0.15s, background-color ease-in-out 0.15s;transition:border-width ease-in-out .15s, left ease-in-out 0.15s, right ease-in-out 0.15s, background-color ease-in-out 0.15s;-webkit-box-shadow:0 0 1px rgba(0,0,0,.5);box-shadow:0 0 1px rgba(0,0,0,.5)}.menu-panel .toggle-button:active,.document-panel .toggle-button:active{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 1px rgba(0,0,0,.5);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 1px rgba(0,0,0,.5)}.menu-panel .toggle-button i,.document-panel .toggle-button i{color:#737373;font-size:14px}.menu-panel .toggle-button:hover,.document-panel .toggle-button:hover,.menu-panel.panel-open>.toggle-button,.document-panel.panel-open>.toggle-button{border-width:1px}.menu-panel .panel-content,.document-panel .panel-content{overflow:auto;padding-bottom:30px;height:100%}.menu-panel .panel-content a>i,.document-panel .panel-content a>i{color:inherit}.menu-panel{position:absolute;top:0;right:0;width:320px}.menu-panel i{margin-right:8px}.menu-panel small{color:rgba(129,158,187,0.6);padding-left:30px}.menu-panel .nav{margin:10px 0 20px}.menu-panel .nav>li>a:hover,.menu-panel .nav>li>a:focus{background-color:rgba(0,0,0,0)}.menu-panel .alert{padding:10px;margin-left:-10px;margin-right:-10px}.menu-panel .toggle-button{border-top:4px solid rgba(255,230,0,0.9);border-right:5px solid rgba(117,183,253,0.9);border-bottom:4px solid rgba(255,138,0,0.9);right:-37px;z-index:-1;padding:0 10px 0 50px}.menu-panel .toggle-button:hover,.menu-panel.panel-open>.toggle-button{right:-45px}.menu-panel .panel-content{background-color:#f6f7f9;padding-top:6px;border-right:1px solid #ebf0f4}.document-panel{position:absolute;top:0;left:0;width:380px}.document-panel .toggle-button{border-top:4px solid rgba(255,230,0,0.9);border-left:5px solid rgba(187,213,0,0.9);border-bottom:4px solid rgba(255,138,0,0.9);left:-37px;padding:0 50px 0 3px;z-index:-1}.document-panel .toggle-button i.icon-folder-open{font-size:19px;padding-bottom:1px}.document-panel .toggle-button:hover,.document-panel.panel-open>.toggle-button{left:-45px}.document-panel .panel-content{background-color:#f6f7f9;padding-top:210px;border-left:1px solid #ebf0f4}.viewer .document-panel .panel-content{padding-top:75px}.document-panel .panel-content .icon-layers{font-size:135%}.document-panel .search-bar{position:absolute;background-color:#475160;margin:-10px 25px 0;padding:15px 20px;z-index:3;border:1px solid #dee6ed;border-radius:6px}.document-panel .search-bar .nav{margin-bottom:10px}.document-panel .search-bar .nav>li>a{padding:8px 15px}.document-panel .search-bar .nav>li>a:hover,.document-panel .search-bar .nav>li>a:focus{background-color:rgba(0,0,0,0)}.document-panel .list-group-item{margin:0}.document-panel .folder{font-weight:bold;color:#425e7b;border-top-color:#f2f5f8}.document-panel .list-group{margin:0}.document-panel .list-group .nav{border:0;margin:0}.document-panel .list-group .nav .file{padding-left:30px;padding-right:30px}.dropdown-file-selector{top:6px;right:45px;left:auto;margin:0;min-width:280px;max-width:400px;overflow-x:hidden;max-height:400px;overflow-y:auto}.modal-document-manager{margin-bottom:0}.modal-document-manager .nav-pills{margin-bottom:15px}.modal-document-manager .list-group .nav{margin-bottom:30px;border:0;margin:0}.modal-document-manager .list-group .nav .file{padding-left:20px}.modal-document-manager .file-list .list-group-item{background-color:rgba(0,0,0,0);padding:0 3px}.modal-document-manager .input-rename{width:220px;height:38px}.modal .list-group .list-group-item{border-radius:4px}.modal .list-group-item{padding:3px;margin:0;border-left-width:1px;border-right-width:1px}.modal .list-group-item i{margin-right:3px}.modal .list-group-item .btn{float:right;margin-right:3px}.modal .list-group-item .btn i{margin:0;font-size:105%}.modal .list-group-item .btn i.icon-pencil{font-size:115%}.modal .folder,.modal .document{font-weight:bold;color:#425e7b;font-size:15px;background-color:rgba(0,0,0,0)}.modal .name,.modal .date,.modal .file-count{padding:9px 20px 9px 15px}.modal .name i.icon-file,.modal .name i.icon-folder{margin-right:8px;font-size:20px;line-height:15px;margin-top:-2px}.modal .date{font-weight:normal}.extension-buttons>.btn-group>.btn,.extension-preview-buttons>.btn-group>.btn,.extension-buttons>.btn-group>.btn,.extension-preview-buttons>.btn-group>.btn{border-radius:0}.extension-buttons>.btn-group:first-child>.btn,.extension-preview-buttons>.btn-group:first-child>.btn,.extension-buttons>.btn-group:first-child>.btn,.extension-preview-buttons>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.extension-buttons>.btn-group:last-child>.btn,.extension-preview-buttons>.btn-group:last-child>.btn,.extension-buttons>.btn-group:last-child>.btn,.extension-preview-buttons>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.extension-preview-buttons{position:absolute;right:0;bottom:0;z-index:40;background-color:#e4ebf1;border:1px solid #cfdae5;border-radius:4px;cursor:move}.extension-preview-buttons.animate{-webkit-transition:350ms ease-in-out all;transition:350ms ease-in-out all}.extension-preview-buttons .btn-group .btn{position:initial;border:0}.extension-preview-buttons .dropdown-menu{margin-top:6px;margin-bottom:6px;padding-bottom:20px}.extension-preview-buttons hr{margin:0}.extension-preview-buttons .markdown-syntax,.extension-preview-buttons .table-of-contents{overflow-y:auto;overflow-x:hidden;padding-right:20px;margin-right:-20px;width:330px}.extension-preview-buttons .markdown-syntax{white-space:normal}.extension-preview-buttons .table-of-contents{padding:20px 0 15px;margin-left:-10px}.extension-preview-buttons .table-of-contents ul{margin-left:10px;padding-left:10px}.extension-preview-buttons .stat-button .value{vertical-align:text-top}.extension-preview-buttons .drag-me{color:#364d63}.extension-preview-buttons .drag-me i:before{width:5px}.modal-settings .modal-header{padding-bottom:0}.modal-settings textarea{max-width:100%;min-height:100px}.modal-settings .panel{border:0;border-radius:inherit;background:#fff;border-bottom:1px solid #f2f5f8;-webkit-box-shadow:none;box-shadow:none}.modal-settings .accordion-heading{padding:12px 15px}.modal-settings .accordion-heading .checkbox{margin-top:0;margin-bottom:0}.modal-settings .accordion-inner{border:0;padding:10px 40px 20px}.modal-settings .accordion-inner .form-horizontal .control-label{text-align:left}.modal-settings .accordion-inner .form-horizontal .form-inline .label-text{margin-left:15px}.modal-settings .tab-pane-button-container{width:220px;margin:10px auto 20px}.modal-settings .tab-pane-button-container .btn{text-align:start;padding-left:15px}.modal-settings .nav-tabs{margin:15px 0 0}.modal-settings .nav-tabs>li>a:hover,.modal-settings .nav-tabs>li>a:focus{color:#036;border-color:rgba(0,128,255,0.1);background-color:rgba(102,128,153,0.04);border-bottom-color:rgba(0,0,0,0)}.modal-settings .nav-tabs>li.active>a,.modal-settings .nav-tabs>li.active>a:hover,.modal-settings .nav-tabs>li.active>a:focus{color:#2c3f51;background-color:#fff;border-color:#ebf0f4;border-bottom-color:rgba(0,0,0,0);margin-bottom:-1px;padding:10px 15px 11px}.modal-manage-sync .sync-list,.modal-manage-publish .publish-list,.modal-manage-sharing .share-editor-list,.modal-manage-sharing .share-viewer-list{margin-bottom:20px}.modal-manage-sync .sync-list .entry,.modal-manage-publish .publish-list .entry,.modal-manage-sharing .share-editor-list .entry,.modal-manage-sharing .share-viewer-list .entry{margin-bottom:10px}.publish-custom-template-collapse{margin-bottom:0}.publish-custom-template-collapse textarea{max-width:100%;min-height:100px}.layout-wrapper-l1,.layout-wrapper-l2,.layout-wrapper-l3{position:absolute;top:0;left:0;overflow:hidden}.layout-animate{-webkit-transition:-webkit-transform 350ms ease-in-out;-moz-transition:-moz-transform 350ms ease-in-out;-o-transition:-o-transform 350ms ease-in-out;transition:transform 350ms ease-in-out}.layout-resizer{position:absolute;top:0;left:0;width:32px;height:32px}.layout-resizer.open{cursor:e-resize}.layout-vertical .layout-resizer.open{cursor:s-resize}.layout-toggler{position:absolute;top:0;left:0;padding:0;margin:0;width:32px;height:32px}.layout-toggler i{font-size:22px}.layout-toggler.layout-toggler-preview{line-height:55px}.layout-animate .layout-toggler.layout-toggler-preview{-webkit-transition:-webkit-transform 350ms ease-in-out;-moz-transition:-moz-transform 350ms ease-in-out;-o-transition:-o-transform 350ms ease-in-out;transition:transform 350ms ease-in-out}.layout-toggler.layout-toggler-preview i:before{content:'\e87d'}.layout-toggler.layout-toggler-preview.open>i:before{content:'\e87e'}.layout-vertical .layout-toggler.layout-toggler-preview{line-height:1.45}.layout-vertical .layout-toggler.layout-toggler-preview i:before{content:'\e87f'}.layout-vertical .layout-toggler.layout-toggler-preview.open>i:before{content:'\e880'}.layout-toggler.layout-toggler-navbar{line-height:0}.layout-toggler.layout-toggler-navbar i{font-size:16px;height:12px;overflow:hidden}@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;src:local('PT Sans'),local('PTSans'),url("../font/PTSans-Regular-webfont.woff") format('woff')}@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;src:local('PT Sans Bold'),local('PTSans-Bold'),url("../font/PTSans-Bold-webfont.woff") format('woff')}@font-face{font-family:'PT Sans';font-style:italic;font-weight:400;src:local('PT Sans Italic'),local('PTSans-Italic'),url("../font/PTSans-Italic-webfont.woff") format('woff')}@font-face{font-family:'PT Sans';font-style:italic;font-weight:700;src:local('PT Sans Bold Italic'),local('PTSans-BoldItalic'),url("../font/PTSans-BoldItalic-webfont.woff") format('woff')}#wmd-input{position:absolute;top:0;left:0;font-family:"PT Sans",sans-serif;line-height:1.65;letter-spacing:normal;border-radius:0;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none;padding:0;overflow:auto;white-space:pre-wrap;word-wrap:break-word;word-break:normal}#wmd-input>.editor-content{padding-bottom:230px}#wmd-input>.editor-margin{position:absolute;top:0;left:0}#wmd-input>.editor-margin .discussion{font-size:17px;position:absolute;cursor:pointer}#wmd-input>.editor-margin .discussion.new{display:none}#wmd-input>.editor-margin .discussion.new:hover,#wmd-input>.editor-margin .discussion.new.active,#wmd-input>.editor-margin .discussion.new.active:hover{display:inline-block;color:rgba(102,128,153,0.35) !important}#wmd-input>.editor-margin .discussion.added{color:rgba(235,192,0,0.7)}#wmd-input>.editor-margin .discussion.added:hover,#wmd-input>.editor-margin .discussion.added.active,#wmd-input>.editor-margin .discussion.added.active:hover{color:#ebc000 !important}#wmd-input>.editor-margin .discussion.replied{color:rgba(230,59,43,0.7)}#wmd-input>.editor-margin .discussion.replied:hover,#wmd-input>.editor-margin .discussion.replied.active,#wmd-input>.editor-margin .discussion.replied.active:hover{color:rgba(230,59,43,0.8) !important}#wmd-input>.editor-margin .discussion.icon-split{font-size:22px}#wmd-input>.editor-margin .discussion.icon-split:before{margin-right:0}#wmd-input>.editor-margin .discussion:hover,#wmd-input>.editor-margin .discussion.active{text-decoration:none}#wmd-input.has-selection>.editor-margin .discussion.new{display:inline-block;color:rgba(102,128,153,0.25)}#wmd-input.font-monospaced *{font-family:"Source Code Pro",monospace !important;line-height:1.65 !important;font-size:1em !important}#wmd-input.ace_editor{font-family:"Source Code Pro",monospace !important}#wmd-input .comment-highlight,#wmd-input .find-replace-highlight{background-color:rgba(255,230,0,0.5)}#wmd-input .find-replace-select{background-color:#b5d5ff}#wmd-input .conflict{font-weight:bold;color:#e63b2b}#wmd-input .ace_print-margin{margin-left:-20px;background:none !important}.editor .md,.editor .hr{color:rgba(102,128,153,0.6);font-style:normal;font-weight:normal}.editor .code,.editor .pre{color:#29333d;font:normal .9em "Source Code Pro",monospace}.editor .tag{color:#29333d;font:bold .9em "Source Code Pro",monospace}.editor .tag .punctuation,.editor .tag .attr-value,.editor .tag .attr-name{font-weight:normal}.editor .latex,.editor .math{color:#668099}.editor .entity{font:italic .9em "Source Code Pro",monospace;color:#668099}.editor .table{font:normal .9em "Source Code Pro",monospace}.editor .table *{font-size:1em}.editor .comment{font-size:.9em;color:rgba(102,128,153,0.6)}.editor .keyword{color:#47596b;font-weight:bold}.editor .code,.editor .img,.editor .imgref,.editor .md-toc{background-color:rgba(102,128,153,0.075);border-radius:4px;padding:.15em 0}.editor .md-toc{font-size:2.5em;padding:.2em}.editor .md-underlined-text{color:inherit}.editor .blockquote{color:#668099}.editor .h1,.editor .h2,.editor .h3,.editor .h4,.editor .h5,.editor .h6{font-weight:600}.editor .h1 .md-hash,.editor .h2 .md-hash,.editor .h3 .md-hash,.editor .h4 .md-hash,.editor .h5 .md-hash,.editor .h6 .md-hash{color:rgba(102,128,153,0.4)}.editor .h1,.editor .h11{font-size:1.7em}.editor .h2,.editor .h22{font-size:1.4em}.editor .h3{font-size:1.2em}.editor .h4{font-size:1.1em}.editor .h5{font-size:1em}.editor .h6{font-size:.9em}.editor .em,.editor .em .md{font-style:italic}.editor .strong,.editor .strong .md{font-weight:bold}.editor .md-strike-text{text-decoration:line-through}.editor .url,.editor .email,.editor .md-underlined-text{text-decoration:underline}.editor .linkdef .url{color:rgba(102,128,153,0.6)}.editor .img,.editor .imgref{padding:.2em .4em;padding-right:0}.editor .md-bang,.editor .md-alt,.editor .md-title{color:#587ea4}.editor .md-checkbox{display:inline-block;font-size:0}.editor .md-checkbox:before{content:"\2610";font-size:26px;vertical-align:-1px;line-height:0;cursor:pointer}.editor .md-checkbox.checked:before{content:"\2611"}.editor .md-checkbox.checked+.md-checkbox-content{text-decoration:line-through}.ace_dark .md,.ace_dark .hr{color:rgba(139,158,177,0.8)}.ace_dark .code,.ace_dark .img,.ace_dark .imgref,.ace_dark .md-toc{background-color:rgba(0,0,0,0.33)}.ace_dark .tag{color:#868686}.ace_dark .code,.ace_dark .pre{color:#868686}.find-replace{position:absolute;bottom:0;width:410px;background-color:#f6f7f9;padding:15px 20px;border-top:1px solid #dee6ed;border-right:1px solid #dee6ed;border-top-right-radius:6px}.find-replace .form-group{width:180px;padding:0 5px}.find-replace .close{position:absolute;right:20px;top:10px}.preview-panel{position:absolute;top:0;left:0;overflow:hidden;-webkit-box-shadow:inset 1px 0 rgba(0,128,255,0.06);box-shadow:inset 1px 0 rgba(0,128,255,0.06);z-index:9}.layout-animate .preview-panel{-webkit-transition:350ms ease-in-out all;transition:350ms ease-in-out all}.layout-vertical .preview-panel{-webkit-box-shadow:inset 0 1px rgba(0,128,255,0.06);box-shadow:inset 0 1px rgba(0,128,255,0.06)}.preview-container{position:absolute;overflow:auto}.wmd-prompt-background{display:none}div.dropdown-menu{padding:5px 20px;background-color:#475160}div.dropdown-menu p,div.dropdown-menu blockquote{margin:10px 0}div.dropdown-menu .stat{margin:20px 0 10px}div.dropdown-menu i{margin-right:0}div.dropdown-menu textarea{width:250px;height:150px;resize:none}div.dropdown-menu a:hover,div.dropdown-menu a:focus{color:#0f4d8a}div.dropdown-menu h1,div.dropdown-menu h2,div.dropdown-menu h3{margin:1em 0}.title-icon-category{display:inline-block;opacity:.15;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=15);filter:alpha(opacity=15);margin-top:-2px;margin-left:-2px;margin-right:3px;font-size:1em;vertical-align:top}.file-title-navbar .title-icon-category{font-size:16px}.picker-dialog{z-index:1050 !important}.picker-dialog-bg{z-index:1040 !important}.tooltip-inner{text-align:left}.tooltip li{line-height:1.4}input[type="file"]{line-height:inherit;height:inherit;border:none !important}.drop-zone{border:2px dashed #bbb;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;padding:40px;text-align:center;font-size:24px;color:#bbb}.modal-import-harddrive-html textarea{width:530px;max-width:530px;height:120px}.label.comment{white-space:inherit}.sharing-tweet{float:left;margin:5px 10px 0 0}.popover{max-width:350px;padding:15px}.popover .popover-title{font-weight:300;font-size:24px;padding:10px 15px}.popover .disabled{display:none}.popover iframe{position:absolute}.comments-popover .popover{max-width:230px;padding:10px 20px 0}.comments-popover .popover .popover-title{padding:5px 0 15px;border-bottom:1px solid rgba(102,128,153,0.1);line-height:1.1;overflow:hidden}.comments-popover .popover .popover-title .action-remove-discussion{font-size:16px;line-height:22px}.comments-popover .popover .popover-content{margin:0;padding:0}.comments-popover .popover .popover-content .scrollport{overflow:auto;max-height:230px;padding:10px 20px 0;margin:0 -20px}.comments-popover .popover .popover-content .btn{padding:6px 11px}.comments-popover .popover .popover-content .comment-block{margin-bottom:5px}.comments-popover .popover .popover-content .form-group,.comments-popover .popover .popover-content blockquote{margin-bottom:10px;padding:0}.comments-popover .popover .popover-content .comment-author{font-weight:bold;color:#2c3f51}.comments-popover .popover .popover-content .icon-comment{font-size:15px;color:rgba(235,192,0,0.6)}.comments-popover .popover .popover-content .reply .icon-comment{color:rgba(230,59,43,0.7)}.comments-popover .popover .popover-content .new-comment-block .icon-comment{color:rgba(102,128,153,0.35)}.comments-popover .popover .popover-content .input-comment-author{border:none;background:none;-webkit-box-shadow:none;box-shadow:none;font-weight:bold;height:28px;padding:0 0 5px;width:140px;display:inline-block}.comments-popover .popover .popover-content hr{margin:0 0 10px}.comments-popover .popover.top .arrow,.comments-popover .popover.bottom .arrow{margin-right:1px;border-right-width:0}.comments-popover .popover.top .arrow:after,.comments-popover .popover.bottom .arrow:after{margin-left:-11px;border-right-width:0}.comments-popover .popover.top .arrow:after{bottom:2px}.comments-popover .popover.bottom .arrow:after{top:2px}div.jGrowl{z-index:1040;font-size:14px}div.jGrowl.bottom-right{right:35px}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(115,128,140,0.9);width:240px;margin:6px 0;padding:10px 12px;-ms-filter:none;filter:none;border-radius:4px;font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif}div.jGrowl div.jGrowl-notification{min-height:65px}.viewer .document-panel .search-bar{padding:20px 20px 10px}.viewer .document-panel .search-bar .input-group-btn{display:none}.viewer .navbar .file-title-navbar{cursor:initial;-webkit-box-shadow:none;box-shadow:none}@media print{html,body{background:transparent !important;overflow:visible !important}.layout-wrapper-l1>*,.layout-wrapper-l2>*,.layout-wrapper-l3>*,.preview-panel>*,#titlebar,#ime-focus-saver{display:none !important}.layout-wrapper-l2:before{visibility:hidden}.layout-wrapper-l1,.layout-wrapper-l2,.layout-wrapper-l3,.preview-panel,.preview-container{background:transparent !important;display:block !important;position:static !important;overflow:visible !important;width:auto !important;height:auto !important;-webkit-transform:translate(0, 0) !important;-ms-transform:translate(0, 0) !important;transform:translate(0, 0) !important;-webkit-box-shadow:none !important;box-shadow:none !important}#preview-contents{padding:0 50px !important}#images_area{display:none}#toast-container{display:none}thead{display:table-header-group}tr,img,svg,pre,blockquote,p{page-break-inside:avoid}img{max-width:100% !important}h2,h3{page-break-after:avoid}select{background:#fff !important}}.layout-toggler{display:none}.editor-navbar{-webkit-transition:none;transition:none;position:absolute;z-index:10;right:50%;background:none !important;margin-top:6px;margin-right:20px}.editor-navbar .editor-navbar-bg{width:100%;height:100%;position:absolute;left:0;top:0;opacity:.8;pointer-events:none;border-radius:4px}.editor-navbar .btn{color:inherit;opacity:.5}.editor-navbar .btn:hover{opacity:.9}.editor-navbar .btn:active,.editor-navbar .btn:focus{color:inherit !important}.editor-navbar .btn-success:hover,.editor-navbar .btn-success:focus,.editor-navbar .btn-success:active,.editor-navbar .btn-success.active,.editor-navbar .open .dropdown-toggle.btn-success{color:inherit !important}.preview-buttons-container .btn{color:rgba(102,128,153,0.35)}.preview-buttons-container .btn:hover,.preview-buttons-container .btn:active,.preview-buttons-container .btn:focus{color:#036}.preview-buttons-container .btn,.editor-navbar-buttons .btn{font-size:16px}.editor-navbar-buttons>.btn-group{display:inline-block}.wmd-buttons-group{display:inline-block}.wmd-buttons-group .wmd-button-group1{opacity:0;-webkit-transition:all ease-in-out .2s;transition:all ease-in-out .2s;-webkit-transition-delay:.6s;transition-delay:.6s}.wmd-buttons-group .wmd-button-group1 li{display:none}.wmd-buttons-group:hover .wmd-button-group1{opacity:1;visibility:visible}.wmd-buttons-group:hover .wmd-button-group1 li{display:block}.shrink-editor-btn{display:none}.file-status-lock{display:none}.resize-editor-btn{position:fixed;right:50%;bottom:10px;margin-right:20px}.open-folder-btn{background:none;border:2px solid;border-radius:0 10px 10px 0;padding:1px 4px;left:-5px;top:6px;position:absolute;border-color:inherit;border-color:currentColor;opacity:.5;z-index:10;color:inherit}.open-folder-btn:hover{color:inherit;opacity:.9}.profile-btn{top:10px;background:none;box-shadow:none;padding:3px;border:2px solid rgba(102,128,153,0.35);border-radius:40px;border-color:currentColor;margin-left:10px}.profile-btn:hover{border-color:currentColor}.preview-buttons-container{position:absolute;z-index:100;margin-top:6px;right:20px}.ui-layout-resizer-south-closed .preview-buttons-container{display:none !important}.preview-buttons-container .btn-group .btn{position:initial}.preview-buttons-container .dropdown-menu{padding-bottom:20px}.preview-buttons-container .markdown-syntax,.preview-buttons-container .table-of-contents{overflow-y:auto;overflow-x:hidden;padding-right:20px;margin-right:-20px;width:330px}.preview-buttons-container .markdown-syntax{white-space:normal;max-height:350px}.preview-buttons-container .table-of-contents{margin-left:-10px;max-height:400px}.preview-buttons-container .table-of-contents ul{margin-left:10px;padding-left:10px}#theme-list{max-height:500px;overflow-x:hidden;overflow-y:scroll}.editor-hosted-buttons{display:inline-block}#app_wrap.no-preview .preview-buttons{display:inline-block}.preview-buttons{padding-right:10px}.full-editor-btn.open .icon-resize-full{display:inline-block}.full-editor-btn.open .icon-resize-small-1{display:none}.full-editor-btn .icon-resize-full{display:none}.full-editor-btn .icon-resize-small-1{display:inline-block}#app_wrap.no-preview .editor-navbar{-webkit-transition:all ease-in-out .2s;transition:all ease-in-out .2s;right:20px;margin-right:0}.dropdown-menu{background-color:#546072;border-color:#3e4755}.dropdown-menu>li>a{color:#eee;padding:5px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#eee;background-color:#4b5666;border-color:#475160}.dropdown-menu>li>a.selected{background:#74b936 !important;color:#fff !important}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{border-color:transparent}.menu-panel .panel-content,.document-panel .panel-content{background-color:#546072}.modal-content,.panel-content{-webkit-box-shadow:0 1px 4px 2px rgba(0,0,0,0.3);box-shadow:0 1px 4px 2px rgba(0,0,0,0.3)}.document-panel .panel-content{border-left:none}.menu-panel .panel-content{border-right:none}.list-group .nav{border-left:10px solid #e4ebf1;margin-left:15px}.list-group .nav>li>a{border-top:1px solid rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0)}.list-group .nav>li>a:hover,.list-group .nav>li>a:focus{border-top-color:#475160;border-bottom-color:#475160}.list-group .nav>li>a.active{border-top-color:rgba(0,128,255,0.05);border-bottom-color:rgba(0,128,255,0.05)}.list-group .nav>li:focus{outline:none}.list-group .nav>li.active>a{background:#4b5666;border-top-color:rgba(0,128,255,0.05);border-bottom-color:rgba(0,128,255,0.05)}.nav-pills>li>a{border:1px solid rgba(0,0,0,0)}.nav-pills>li>a:hover,.nav-pills>li>a:focus{border-color:#475160}.nav-pills>li.disabled>a:hover,.nav-pills>li.disabled>a:focus{border-color:rgba(0,0,0,0)}.nav-pills>li.open>a,.nav-pills>li.open>a:hover,.nav-pills>li.open>a:focus{border-color:#475160}.list-group-item{padding:10px 15px;margin-bottom:0}.list-group .list-group-item{border-radius:0;background:#546072}.list-group-item:hover{border-top-color:#475160;border-bottom-color:#475160;background:#4b5666 !important}.list-group-item:focus,.active>.list-group-item{border-top-color:#475160;border-bottom-color:#475160;background:#3a424f !important}a.list-group-item{-webkit-transition:none;transition:none}a.list-group-item:hover,a.list-group-item:focus{color:#eee}.username{padding:10px 20px;background:#454f5d;color:#fff;margin-top:-6px}.vip-status{float:right;background:#74b936;color:#fff;border-radius:20px;padding:2px;-webkit-transition:all ease-in-out 0.35s;transition:all ease-in-out 0.35s;cursor:pointer}.vip-status .renew{padding:0 6px;display:none}.vip-status:hover .renew{display:inline}.vip-status.expired{background:#ccc}.vip-status .icon{margin-right:0}.menu-panel i{margin-right:2px}.menu-panel .sub-menu,.document-panel .sub-menu{background:#4b5666;box-shadow:#000 0 0 7px -4px inset}.menu-panel .sub-menu a,.document-panel .sub-menu a{color:#eee}.menu-panel .sub-menu .nav,.document-panel .sub-menu .nav{margin-left:0;border-left:none;margin:0}.menu-panel .sub-menu .nav li:hover,.document-panel .sub-menu .nav li:hover{background:#454f5d}.document-panel.panel-open{width:385px}.document-panel .panel-content{background-color:#546072;padding-top:60px}.document-panel .panel-content .icon-layers{font-size:135%}.document-panel .search-bar{position:absolute;background-color:#475160;margin:-10px 25px 0;padding:20px 5px 10px 15px;z-index:3;border:1px solid #3e4755;border-top:0;border-radius:6px;width:100%;margin:0;border-radius:0;box-shadow:none;padding:10px 10px}.document-panel .search-bar .input-group-addon{color:#eee;background-color:#546072;border-color:#3e4755;border-left:1px solid #3e4755}.document-panel .search-bar input[type='text']{border-color:#3e4755}.document-panel .dropdown-header{padding-top:10px}#search-and-sync input{width:calc(100% - 30px)}#search-and-sync .input-group-addon,#search-and-sync input{border-radius:4px;border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:4px;border-top-left-radius:4px}.file-action{float:right;display:none}.file-action i{padding-top:2px}.folder-wrapper .icon-folder-open-empty{display:none}.folder-wrapper.active .icon-folder-open-empty{display:inline-block}.folder-wrapper.active .icon-folder-empty{display:none}.folder-wrapper.active a.collapsed .icon-folder-open-empty{display:none}.folder-wrapper.active a.collapsed .icon-folder-empty{display:inline-block}.folder-wrapper .file-notebook{display:none !important}.folder-wrapper.active>.list-group-item{border-top-color:#3a424f;border-bottom-color:#3a424f}.folder-wrapper>.list-group-item .shared-icon{float:right}.file-item:hover .file-action,li.active>.file-item .file-action{display:block}.file-item:hover .file-notebook,li.active>.file-item .file-notebook{display:none}.file-item .file-notebook{float:right;opacity:.8}.file-item .file-notebook .label{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.file-item .file-notebook .icon-star-empty{color:rgba(255,255,255,0.66)}.file-item .file-notebook .label{padding:.4em .6em}.file-item.synced{color:#bbb}.file-status-label{color:#aaa}.archive-splitter:last-child{display:none}.document-list{height:100%;overflow:auto;position:relative}.document-list .sub-menu .file-item{background:none}.document-list .sub-menu .file-item:hover,.document-list .sub-menu .file-item:focus{background:none !important}.document-list ul>li.active .file-item,.document-list .file-wrapper.active .file-item{background:#74b936 !important;color:#fff}.document-list ul>li.active .file-status-label,.document-list .file-wrapper.active .file-status-label{color:#fff}.document-list ul>li.active .label-success,.document-list .file-wrapper.active .label-success{background:#2a4313}.folder-top{position:absolute;display:none;z-index:10000;width:100%}.footer-left-btn{float:left;position:relative}.extension-preview-buttons{background-color:#546072;border-color:#3e4755}.extension-preview-buttons .drag-me{color:#eee}.extension-preview-buttons .btn-success{color:#eee}.extension-preview-buttons .btn-success:hover,.extension-preview-buttons .btn-success:active{color:#eee !important;background-color:#454f5d !important}.extension-preview-buttons .open .btn-success{color:#eee !important;background-color:#454f5d !important}.extension-preview-buttons .dropdown-menu{background-color:#fff;border-color:#dee6ed}.extension-preview-buttons.closed{opacity:.25;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=25);filter:alpha(opacity=25)}.extension-preview-buttons.closed.info-tooltip-container{opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}.atwho-view-ul{max-height:300px;overflow:scroll;position:relative}.atwho-view-ul li[shared="1"]:before{content:'\e954';margin-right:.4em;margin-left:0}#app_wrap.readonly .editor-navbar-buttons,#app_wrap.readonly .save-file{display:none}#app_wrap.readonly .file-status-lock{display:inline-block}.markdown-syntax pre{margin:0;background:none;font-size:12px}.markdown-syntax table td{border:2px solid #fff}.markdown-syntax table tr td:first-child{background:#91b82d;color:#fff;font-weight:bold}.markdown-syntax table tr td{background:#eee}.markdown-syntax table tr td i{font-size:12px;color:#aaa;font-style:initial}.markdown-syntax table tr td:last-child{background:#fff}.markdown-syntax kbd{padding:.1em .6em;border:1px solid #ccc;font-size:11px;background-color:#f7f7f7;color:#333;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;border-radius:3px;display:inline-block;margin:0 .2em;text-shadow:0 1px 0 #fff;line-height:1.4;white-space:nowrap}.modal-help .modal-dialog{width:870px}.modal-help .modal-dialog .markdown-table{float:left}.modal-help .modal-dialog .key-table{width:260px;float:right}.modal-changelog .modal-dialog .modal-body{text-align:left}#toggle-preview{display:none}.full-preview{overflow-x:hidden;overflow-y:scroll;padding:0;background:#fff}.full-preview .layout-wrapper-l3{overflow-x:hidden;overflow-y:scroll}.full-preview #wmd-input,.full-preview #ace-input,.full-preview .extension-preview-buttons,.full-preview .editor-navbar,.full-preview .modal-backdrop,.full-preview .preview-buttons,.full-preview .open-folder-btn{display:none}.full-preview .preview-container{width:auto !important;position:relative;height:auto !important;overflow-y:hidden}.full-preview .preview-panel{position:relative;max-width:960px;margin:auto;left:0;width:auto !important;height:auto !important;transform:none !important;-webkit-transform:none !important;-ms-transform:none !important;overflow:visible;display:block !important;min-height:100%;-webkit-transition:all ease-in-out .4s;transition:all ease-in-out .4s;-webkit-box-shadow:none;box-shadow:none}.full-preview .preview-panel:before{background:inherit;content:' ';position:absolute;width:100%;height:100%;top:0;left:-100%}.full-preview .preview-panel:after{background:inherit;content:' ';position:absolute;width:100%;height:100%;top:0;right:-100%}.full-preview #toggle-preview{display:block;font-size:24px;position:absolute;right:10px;top:10px;color:#aaa;cursor:pointer;color:rgba(102,128,153,0.35);z-index:10}.full-preview #toggle-preview:hover,.full-preview #toggle-preview:active,.full-preview #toggle-preview:focus{color:#036}#readme,#images_area{display:none}#titlebar{height:20px;line-height:18px;z-index:1000000}#titlebar~.layout-wrapper-l1{top:20px}#titlebar~.layout-wrapper-l1 .open-folder-btn{top:22px}#titlebar [class^='icon']:before{margin:0 .1em}#titlebar i{opacity:.8;cursor:pointer}#titlebar i:hover{opacity:.9}#titlebar .window-file{position:absolute;left:1px}#titlebar-bg{position:absolute;width:100%;height:100%;-webkit-filter:contrast(112%)}#dragbar{height:100%;-webkit-app-region:drag;overflow:hidden;margin:0 20px}#dragbar.disabled{-webkit-app-region:no-drag}.window_resizer{float:right;margin-top:1px}.editor-hosted-buttons{display:inline-block}.window-fullscreen{position:absolute;right:4px;top:-1px}body.app{overflow:hidden}body.app .open-folder-btn{display:none}body.app .for-mac{display:none}body.app.mac .window_resizer{display:none}body.app.mac .window_resizer.for-mac{float:left;display:flex;margin-left:4px;margin-top:0}body.app.mac #titlebar .window-file{position:static;order:4;margin-left:15px}body.app.mac #titlebar i{margin:1px}body.app.mac .window-close{order:1}body.app.mac .window-min{order:2}body.app.mac .window-max{order:3}body.app img[src^='http']{animation:img_load .1s;-webkit-animation:img_load .1s}body.app .preview-container{user-select:auto;-webkit-user-select:auto}@-webkit-keyframes img_load{0%{opacity:.9}100%{opacity:1}}#settings .col-lg-4{float:left;text-align:right;width:33.33333333%}#settings .col-lg-7{float:left;width:58.33333333%}#settings .form-inline .col-lg-7{width:58.33333333%}#settings .form-inline .form-control{display:inline-block}#settings .form-inline *{float:none}#settings .help-block{font-size:12px}#settings .form-control{height:34px}#settings textarea.form-control{width:100%}.toast-warning:before{content:"\e859"}.toast-error:before{content:"\e81b"}.toast-info:before{content:"\e829"}.toast-success:before{content:"\e817"}.modal.slim .modal-dialog{width:400px}.modal.slim .modal-title{text-align:inherit}.modal.slim .modal-content{background:#fff;text-align:center}.modal.slim .modal-content p{color:#777}.modal.slim .modal-body{padding-top:0;padding-bottom:0}.modal.slim .modal-footer{border:none;text-align:center}.modal.slim .modal-header{border:none;color:#546072}.modal.slim .btn-primary{background:#74b936;color:#fff}.modal.slim .btn-primary:hover,.modal.slim .btn-primary:active,.modal.slim .btn-primary:focus{background:#68a530 !important}.modal-dialog.slim .modal-header{padding:10px 15px}.modal-dialog.slim .modal-body{padding:10px 20px}.modal-dialog.slim .modal-footer{padding:10px;background-color:#fff}.modal.error .modal-header{color:#b90b0b}#ace-input{display:none}.layout-wrapper-l2:before{position:absolute;content:'';width:100%;height:100%;background:#f9fafb}#preview-contents{margin-top:30px;padding-left:10px;padding-right:10px}.ace_dark .ace_gutter{color:#aaa !important;background:rgba(0,0,0,0.2) !important}.ace_gutter-cell{padding-left:0 !important}.attachment-wrapper{overflow:hidden}.attachment-placeholder{float:left;display:block}.attachment-placeholder:hover{text-decoration:none}.attachment-placeholder i{font-size:3em;float:left}.attachment-placeholder .file-name{vertical-align:-0.6em;font-weight:bold;line-height:1.8em}.attachment-placeholder .file-size{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;opacity:.6;font-size:80%;white-space:nowrap}.attachment-placeholder img{display:none}#edit-conflict-container{left:50%;bottom:6px;right:1em;margin-left:1em;position:fixed;z-index:11111111;display:none}#edit-conflict-container .toast{margin-bottom:0}#edit-conflict-container .message-content{background-color:#f9f0e3;color:#cf8321;padding:4px 4px;border-radius:4px;float:left;padding-right:10px}.no-preview #edit-conflict-container{left:0}@media (max-width:450px){.full-editor-btn{display:none}}#loading{position:fixed;top:0;left:0;bottom:0;right:0;z-index:10000000;background:#fff;color:#74b936;text-align:center}#loading .loading-container{position:absolute;margin:auto;left:0;right:0;top:30%;bottom:0}#loading b{color:#fff;background:#74b936;font-weight:normal;padding:5px 5px;margin:10px;font-size:50px}#loading h1,#loading h2,#loading h3,#loading h4{font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,sans-serif;text-align:center}#loading .reverse{color:#fff !important;background:#74b936 !important;padding:4px;border-radius:4px}#loading #loading-app-name{text-align:center;font-size:54px;margin-top:0;margin-bottom:.8em}#loading #loading-slogan{font-weight:normal}#loading #loading-text{margin:80px auto;text-align:center;margin-bottom:40px}#loading #loading-view-doc{font-size:16px;margin:10px auto}#loading #loading-view-doc a{padding:10px;border-radius:6px;border:1px solid #74b936}#loading #loading-view-doc a:link,#loading #loading-view-doc a:hover,#loading #loading-view-doc a:active,#loading #loading-view-doc a:visited{color:#74b936;text-decoration:none}.slim-scroll ::-webkit-scrollbar{height:10px;width:7px;background:transparent}.slim-scroll ::-webkit-scrollbar:hover{background:rgba(128,128,128,0.1)}.slim-scroll ::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.3);-webkit-border-radius:6px}.slim-scroll ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.6)}.slim-scroll ::-webkit-scrollbar-corner{background:#000}.slim-scroll .ace_dark .ace_scrollbar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.3);-webkit-border-radius:6px}.slim-scroll .ace_dark .ace_scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.6)}.slim-scroll .ace_scroller{right:4px !important}.slim-scroll .ace_scrollbar-v{right:4px !important}.slim-scroll #preview{right:2px}.atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:#fff;color:#000;border:1px solid #ddd;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,0.1);min-width:120px;z-index:11110 !important}.atwho-view .cur{background:#36f;color:#fff}.atwho-view .cur small{color:#fff}.atwho-view strong{color:#36f}.atwho-view .cur strong{color:#fff;font:bold}.atwho-view ul{list-style:none;padding:0;margin:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid #ddd;cursor:pointer}.atwho-view small{font-size:smaller;color:#777;font-weight:normal}
-->
code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}

.token.punctuation {
color: #999;
}

.namespace {
opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #a67f59;
background: hsla(0, 0%, 100%, .5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}

.token.function {
color: #DD4A68;
}

.token.regex,
.token.important,
.token.variable {
color: #e90;
}

.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}

.token.entity {
cursor: help;
}
-->

前言

继续更新“用 C 写一个 web 服务器”项目(上期链接:用C写一个web服务器(一) 基础功能),本次更新选择了 I/O 模型的优化,因为它是服务器的基础,这个先完成的话,后面的优化就可以选择各个模块来进行,不必进行全局化的改动了。

I/O模型

接触过 socket 编程的同学应该都知道一些 I/O 模型的概念,linux 中有阻塞 I/O、非阻塞 I/O、I/O 多路复用、信号驱动 I/O 和 异步 I/O 五种模型。

其他模型的具体概念这里不多介绍,只简单地提一下自己理解的 I/O 多路复用:简单的说就是由一个进程来管理多个 socket,即将多个 socket 放入一个表中,在其中有 socket 可操作时,通知进程来处理, I/O 多路复用的实现方式有 select、poll 和 epoll。

select/poll/epoll

在 linux下,通过文件描述符(file descriptor, 下 fd)来进行 socket 的操作,所以下文均是对 fd 操作。

首先说最开始实现的 select 的问题:

  • select 打开的 fd 最大数目有限制,一般为1024,在当前计算系统的并发量前显然有点不适用了。
  • select 在收到有 fd 可操作的通知时,是无法得知具体是哪个 fd 的,需要线性扫描 fd 表,效率较低。
  • 当有 fd 可操作时,fd 会将 fd 表复制到内核来遍历,消耗也较大。

随着网络技术的发展,出现了 poll:poll 相对于 select,使用 pollfd 表(链表实现) 来代替 fd,它没有上限,但受系统内存的限制,它同样使用 fd 遍历的方式,在并发高时效率仍然是一个问题。

最终,epoll 在 Linux 2.6 的内核面世,它使用事件机制,在每一个 fd 上添加事件,当fd 的事件被触发时,会调用回调函数来处理对应的事件,epoll 的优势总之如下:

  • 只关心活跃的 fd,精确定位,改变了poll的时间效率 O(n) 到 O(1);
  • fd 数量限制是系统能打开的最大文件数,会受系统内存和每个 fd 消耗内存的影响,以当前的系统硬件配置,并发数量绝对不是问题。
  • 内核使用内存映射,大量 fd 向内核态的传输不再是问题。

为了一步到位,也是为了学习最先进的I/O多路复用模型,直接使用了 epoll 机制,接下来介绍一下 epoll 相关基础和自己服务器的实现过程。


epoll介绍

epoll 需要引入<sys/epoll.h>文件,首先介绍一下 epoll 系列函数:

epoll_create

int epoll_create(int size);

创建一个 epoll 实例,返回一个指向此 epoll 实例的文件描述符,当 epoll 实例不再使用时,需要使用close()方法来关闭它。

在最初的实现中, size 作为期望打开的最大 fd 数传入,以便系统分配足够大的空间。在最新版本的内核中,系统内核动态分配内存,已不再需要此参数了,但为了避免程序运行在旧内核中会有问题,还是要求此值必须大于0;

epoll_ctl

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

  • epfd 是通过 epoll_create 返回的文件描述符

  • op 则是文件描述符监听事件的操作方式,EPOLL_CTL_ADD/EPOLL_CTL_MOD/EPOLL_CTL_DEL 分别表示添加、修改和删除一个监听事件。

  • fd 为要监听的文件描述符。

  • event 为要监听的事件,可选事件和行为会在下面描述,它的结构如下:

typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t; struct epoll_event {
uint32_t events; /* epoll事件 */
epoll_data_t data; /* 事件相关数据 */
};

epoll_wait

int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout); 监听 epoll 事件:

  • events 是 epoll 事件数组,epoll 事件的结构上面已经介绍过。
  • maxevents 是一次监听获取到的最大事件数目。
  • timeout 是一次监听中获取不到事件的最长等待时间,设置成 -1 会一直阻塞等待,0 则会立即返回。

epoll行为

在 epoll_ctl 的 event 参数中,事件 events 有如下可选项:

EPOLLIN(可读)、EPOLLOUT(可写)、EPOLLRDHUP(连接关闭)、EPOLLPRI(紧急数据可读),此外 EPOLLERR(错误),EPOLLHUP(连接挂断)事件会被 epoll 默认一直监听。

除了设置事件外,还可以对监听的行为设置:

  • level trigger:此行为被 epoll 默认支持,不必设置。在 epoll_wait 得到一个事件时,如果应用程序不处理此事件,在 level trigger 模式下,epoll_wait 会持续触发此事件,直到事件被程序处理;
  • EPOLLET(edge trigger):在 edge trigger 模式下,事件只会被 epoll_wait 触发一次,如果用户不处理此事件,不会在下次 epoll_wait 再次触发。在处理得当的情况下,此模式无疑是高效的。需要注意的是此模式需求 socket 处理非阻塞模式,下面会实现此模式。
  • EPOLLONESHOT:在单次命中模式下,对同一个文件描述符来说,同类型的事件只会被触发一次,若想重复触发,需要重新给文件描述符注册事件。
  • EPOLLWAKEUP:3.5版本加入,如果设置了单次命中和ET模式,而且进程有休眠唤醒能力,当事件被挂起和处理时,此选项确保系统不进入暂停或休眠状态。 事件被 epoll_wait 调起后,直到下次 epoll_wait 再次调起此事件、文件描述符被关闭,事件被注销或修改,都会被认为是处于处理中状态。
  • EPOLLEXCLUSIVE:4.5版本加入,为一个关联到目标文件描述符的 epoll 句柄设置独占唤醒模式。如果目标文件描述符被关联到多个 epoll 句柄,当有唤醒事件发生时,默认所有 epoll 句柄都会被唤醒。而都设置此标识后,epoll 句柄之一被唤醒,以避免“惊群”现象。

当监听事件和行为需求同时设置时,使用运算符 |即可。


代码实现

整体处理逻辑

使用 epoll 时的服务器受理客户端请求逻辑如下:

  1. 创建服务器 socket,注册服务器 socket 读事件;
  2. 客户端连接服务器,触发服务器 socket 可读,服务器创建客户端 socket,注册客户端socket 读事件;
  3. 客户端发送数据,触发客户端 socket 可读,服务器读取客户端信息,将响应写入 socket;
  4. 客户端关闭连接,触发客户端 socket 可读,服务器读取客户端信息为空,注销客户端 socket 读事件;

代码实现如下(详细处理方式见 GitHub:我是地址):

erver_fd = server_start();
epoll_fd = epoll_create(FD_SIZE);
epoll_register(epoll_fd, server_fd, EPOLLIN|EPOLLET);// 这里注册socketEPOLL事件为ET模式 while (1) {
event_num = epoll_wait(epoll_fd, events, MAX_EVENTS, 0);
for (i = 0; i < event_num; i++) {
fd = events[i].data.fd;
// 如果是服务器socket可读,则处理连接请求
if ((fd == server_fd) && (events[i].events == EPOLLIN)){
accept_client(server_fd, epoll_fd);
// 如果是客户端socket可读,则获取请求信息,响应客户端
} else if (events[i].events == EPOLLIN){
deal_client(fd, epoll_fd);
} else if (events[i].events == EPOLLOUT)
// todo 数据过大,缓冲区不足的情况待处理
continue;
}
}

需要注意的是,客户端socket在可读之后也是立刻可写的,我这里直接读取一次请求,然后将响应信息 write 进去,没有考虑读数据时缓冲区满的问题。

这里提出的解决方案为:

  1. 设置一个客户端 socket 和 buffer 的哈希表;
  2. 在读入一次信息缓冲区满时 recv 会返回 EAGIN 错误,这时将数据放入 buffer,暂时不响应。
  3. 后续读事件中读取到数据尾后,再注册 socket 可写事件。
  4. 在处理可写事件时,读取 buffer 内的全部请求内容,处理完毕后响应给客户端。
  5. 最后注销 socket 写事件。

设置epoll ET(edge trigger)模式

上文说过,ET模式是 epoll 的高效模式,事件只会通知一次,但处理良好的情况下会更适用于高并发。它需要 socket 在非阻塞模式下才可用,这里我们实现它。

sock_fd = socket(AF_INET, SOCK_STREAM, 0);

    // 获取服务器socket的设置,并添加"不阻塞"选项
flags = fcntl(sock_fd, F_GETFL, 0);
fcntl(sock_fd, F_SETFL, flags|O_NONBLOCK); .....
// 这里注册服务器socket EPOLL事件为ET模式
epoll_register(epoll_fd, server_fd, EPOLLIN|EPOLLET);

我将处理事件注掉后使用一次客户端连接请求进行了测试,很清晰地说明了 ET模式下,事件只触发一次的现象,前后对比图如下:

用C写一个web服务器(二) I/O多路复用之epoll

用C写一个web服务器(二) I/O多路复用之epoll


小结

Mac OS X 操作系统的某些部分是基于 FreeBSD 的,FreeBSD 不支持,MAC 也不支持(不过有相似的 kqueue),跑到开发机上开发的,作为一个最基础的 C learner, 靠着printf()fflush()两个函数来调试的,不过搞了很久总算是完成了,有用 C 的前辈推荐一下调试方式就最好了。。

另外 epoll 在最新的内核中也更新了些内容,旧的很多博客都没有提到,话说照这样的发展速度,我这篇也会在一段时间后“过时”吧,哈哈~

如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。博客一直在更新,欢迎 关注

参考:

IO多路复用之epoll总结

epoll精髓

epoll interface detail (很不错的英文文档,推荐)

用C写一个web服务器(二) I/O多路复用之epoll的更多相关文章

  1. 使用node&period;js 文档里的方法写一个web服务器

    刚刚看了node.js文档里的一个小例子,就是用 node.js 写一个web服务器的小例子 上代码 (*^▽^*) //helloworld.js// 使用node.js写一个服务器 const h ...

  2. 使用Node&period;js原生API写一个web服务器

    Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但 ...

  3. 用java写一个web服务器

    一.超文本传输协议 Web服务器和浏览器通过HTTP协议在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答.HTTP协议使用可靠的T ...

  4. Tomcat源码分析 (一)----- 手写一个web服务器

    作为后端开发人员,在实际的工作中我们会非常高频地使用到web服务器.而tomcat作为web服务器领域中举足轻重的一个web框架,又是不能不学习和了解的. tomcat其实是一个web框架,那么其内部 ...

  5. 手写一个Web服务器,极简版Tomcat

    网络传输是通过遵守HTTP协议的数据格式来传输的. HTTP协议是由标准化组织W3C(World Wide Web Consortium,万维网联盟)和IETF(Internet Engineerin ...

  6. 用C写一个web服务器(一) 基础功能

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  7. 用C写一个web服务器(四) CGI协议

    * { margin: 0; padding: 0 } body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; colo ...

  8. 用C写一个web服务器(三) Linux下用GCC进行项目编译

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  9. java写的web服务器

    经常用Tomcat,不知道的以为Tomcat很牛,其实Tomcat就是用java写的,Tomcat对jsp的支持做的很好,那么今天我们用java来写一个web服务器 //首先得到一个server, S ...

随机推荐

  1. nyoj 142, poj 1039 ,hdu 1454 管道问题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=142 第一道解析几何问题,比较纠结,主要是几个解析几何的基本操作,包括求两线段的叉积,判断左右方向, ...

  2. C&num;学习系列-out与ref的区别

    参考:http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=9851&m=9839&ct=31056 如 ...

  3. SarePoint Powershell Add user to Group

    $FromGroupnames = "001总经理","010101管理本部" $ToGroupname = "test" $SPWeb = ...

  4. 转载:性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    这段时间AX查询变得非常慢,每天都有很多锁. 最后发现是数据库统计信息需要更新. ----------------------------------------------------------- ...

  5. Ubuntu14&period;04 搭建 node&period;js 环境(Binaries方式)

    从官网下载 http://nodejs.org/download/ Linux Binaries (.tar.gz)  下载下来的是node-v0.10.29-linux-x64.tar.gz文件 解 ...

  6. yii criteria select column as 与 时间段查询

    需要查询某时间段的记录,但是数据库里只有一个时间记录,如果写sql的话,很快的,放到yii里一时竟然没办法... 不过,最后还是解决了,使用了一个第三方的插件 参考http://www.yiifram ...

  7. 安装 CocoaPods &amp&semi; Alcatraz

    (一)安装CocoaPods { CocoaPods :} 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使 ...

  8. 安装ruby on rail

    安装: # nvm 安装, 两种方法 $ curl https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh $ ...

  9. ASP&period;NET 修改密码代码

    using System; using System.Data; using System.Configuration; using System.Collections; using System. ...

  10. Mysql PHP

    if(_mysql.query(sql.data()) < 0) 这里不能使用sql.c_str() 因为这个会有‘\0’而在Mysql查询中,这个0是不希望出现的.