Page MenuHomec4science

lab4-1-vsm.html
No OneTemporary

File Metadata

Created
Sun, Feb 23, 17:45

lab4-1-vsm.html

This file is larger than 256 KB, so syntax highlighting was skipped.
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>lab4-1-vsm</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<style type="text/css">
/*!
*
* Twitter Bootstrap
*
*/
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
font-family: sans-serif;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline;
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0;
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield;
box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important;
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
.navbar {
display: none;
}
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #fff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
}
}
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
content: "\002a";
}
.glyphicon-plus:before {
content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
content: "\20ac";
}
.glyphicon-minus:before {
content: "\2212";
}
.glyphicon-cloud:before {
content: "\2601";
}
.glyphicon-envelope:before {
content: "\2709";
}
.glyphicon-pencil:before {
content: "\270f";
}
.glyphicon-glass:before {
content: "\e001";
}
.glyphicon-music:before {
content: "\e002";
}
.glyphicon-search:before {
content: "\e003";
}
.glyphicon-heart:before {
content: "\e005";
}
.glyphicon-star:before {
content: "\e006";
}
.glyphicon-star-empty:before {
content: "\e007";
}
.glyphicon-user:before {
content: "\e008";
}
.glyphicon-film:before {
content: "\e009";
}
.glyphicon-th-large:before {
content: "\e010";
}
.glyphicon-th:before {
content: "\e011";
}
.glyphicon-th-list:before {
content: "\e012";
}
.glyphicon-ok:before {
content: "\e013";
}
.glyphicon-remove:before {
content: "\e014";
}
.glyphicon-zoom-in:before {
content: "\e015";
}
.glyphicon-zoom-out:before {
content: "\e016";
}
.glyphicon-off:before {
content: "\e017";
}
.glyphicon-signal:before {
content: "\e018";
}
.glyphicon-cog:before {
content: "\e019";
}
.glyphicon-trash:before {
content: "\e020";
}
.glyphicon-home:before {
content: "\e021";
}
.glyphicon-file:before {
content: "\e022";
}
.glyphicon-time:before {
content: "\e023";
}
.glyphicon-road:before {
content: "\e024";
}
.glyphicon-download-alt:before {
content: "\e025";
}
.glyphicon-download:before {
content: "\e026";
}
.glyphicon-upload:before {
content: "\e027";
}
.glyphicon-inbox:before {
content: "\e028";
}
.glyphicon-play-circle:before {
content: "\e029";
}
.glyphicon-repeat:before {
content: "\e030";
}
.glyphicon-refresh:before {
content: "\e031";
}
.glyphicon-list-alt:before {
content: "\e032";
}
.glyphicon-lock:before {
content: "\e033";
}
.glyphicon-flag:before {
content: "\e034";
}
.glyphicon-headphones:before {
content: "\e035";
}
.glyphicon-volume-off:before {
content: "\e036";
}
.glyphicon-volume-down:before {
content: "\e037";
}
.glyphicon-volume-up:before {
content: "\e038";
}
.glyphicon-qrcode:before {
content: "\e039";
}
.glyphicon-barcode:before {
content: "\e040";
}
.glyphicon-tag:before {
content: "\e041";
}
.glyphicon-tags:before {
content: "\e042";
}
.glyphicon-book:before {
content: "\e043";
}
.glyphicon-bookmark:before {
content: "\e044";
}
.glyphicon-print:before {
content: "\e045";
}
.glyphicon-camera:before {
content: "\e046";
}
.glyphicon-font:before {
content: "\e047";
}
.glyphicon-bold:before {
content: "\e048";
}
.glyphicon-italic:before {
content: "\e049";
}
.glyphicon-text-height:before {
content: "\e050";
}
.glyphicon-text-width:before {
content: "\e051";
}
.glyphicon-align-left:before {
content: "\e052";
}
.glyphicon-align-center:before {
content: "\e053";
}
.glyphicon-align-right:before {
content: "\e054";
}
.glyphicon-align-justify:before {
content: "\e055";
}
.glyphicon-list:before {
content: "\e056";
}
.glyphicon-indent-left:before {
content: "\e057";
}
.glyphicon-indent-right:before {
content: "\e058";
}
.glyphicon-facetime-video:before {
content: "\e059";
}
.glyphicon-picture:before {
content: "\e060";
}
.glyphicon-map-marker:before {
content: "\e062";
}
.glyphicon-adjust:before {
content: "\e063";
}
.glyphicon-tint:before {
content: "\e064";
}
.glyphicon-edit:before {
content: "\e065";
}
.glyphicon-share:before {
content: "\e066";
}
.glyphicon-check:before {
content: "\e067";
}
.glyphicon-move:before {
content: "\e068";
}
.glyphicon-step-backward:before {
content: "\e069";
}
.glyphicon-fast-backward:before {
content: "\e070";
}
.glyphicon-backward:before {
content: "\e071";
}
.glyphicon-play:before {
content: "\e072";
}
.glyphicon-pause:before {
content: "\e073";
}
.glyphicon-stop:before {
content: "\e074";
}
.glyphicon-forward:before {
content: "\e075";
}
.glyphicon-fast-forward:before {
content: "\e076";
}
.glyphicon-step-forward:before {
content: "\e077";
}
.glyphicon-eject:before {
content: "\e078";
}
.glyphicon-chevron-left:before {
content: "\e079";
}
.glyphicon-chevron-right:before {
content: "\e080";
}
.glyphicon-plus-sign:before {
content: "\e081";
}
.glyphicon-minus-sign:before {
content: "\e082";
}
.glyphicon-remove-sign:before {
content: "\e083";
}
.glyphicon-ok-sign:before {
content: "\e084";
}
.glyphicon-question-sign:before {
content: "\e085";
}
.glyphicon-info-sign:before {
content: "\e086";
}
.glyphicon-screenshot:before {
content: "\e087";
}
.glyphicon-remove-circle:before {
content: "\e088";
}
.glyphicon-ok-circle:before {
content: "\e089";
}
.glyphicon-ban-circle:before {
content: "\e090";
}
.glyphicon-arrow-left:before {
content: "\e091";
}
.glyphicon-arrow-right:before {
content: "\e092";
}
.glyphicon-arrow-up:before {
content: "\e093";
}
.glyphicon-arrow-down:before {
content: "\e094";
}
.glyphicon-share-alt:before {
content: "\e095";
}
.glyphicon-resize-full:before {
content: "\e096";
}
.glyphicon-resize-small:before {
content: "\e097";
}
.glyphicon-exclamation-sign:before {
content: "\e101";
}
.glyphicon-gift:before {
content: "\e102";
}
.glyphicon-leaf:before {
content: "\e103";
}
.glyphicon-fire:before {
content: "\e104";
}
.glyphicon-eye-open:before {
content: "\e105";
}
.glyphicon-eye-close:before {
content: "\e106";
}
.glyphicon-warning-sign:before {
content: "\e107";
}
.glyphicon-plane:before {
content: "\e108";
}
.glyphicon-calendar:before {
content: "\e109";
}
.glyphicon-random:before {
content: "\e110";
}
.glyphicon-comment:before {
content: "\e111";
}
.glyphicon-magnet:before {
content: "\e112";
}
.glyphicon-chevron-up:before {
content: "\e113";
}
.glyphicon-chevron-down:before {
content: "\e114";
}
.glyphicon-retweet:before {
content: "\e115";
}
.glyphicon-shopping-cart:before {
content: "\e116";
}
.glyphicon-folder-close:before {
content: "\e117";
}
.glyphicon-folder-open:before {
content: "\e118";
}
.glyphicon-resize-vertical:before {
content: "\e119";
}
.glyphicon-resize-horizontal:before {
content: "\e120";
}
.glyphicon-hdd:before {
content: "\e121";
}
.glyphicon-bullhorn:before {
content: "\e122";
}
.glyphicon-bell:before {
content: "\e123";
}
.glyphicon-certificate:before {
content: "\e124";
}
.glyphicon-thumbs-up:before {
content: "\e125";
}
.glyphicon-thumbs-down:before {
content: "\e126";
}
.glyphicon-hand-right:before {
content: "\e127";
}
.glyphicon-hand-left:before {
content: "\e128";
}
.glyphicon-hand-up:before {
content: "\e129";
}
.glyphicon-hand-down:before {
content: "\e130";
}
.glyphicon-circle-arrow-right:before {
content: "\e131";
}
.glyphicon-circle-arrow-left:before {
content: "\e132";
}
.glyphicon-circle-arrow-up:before {
content: "\e133";
}
.glyphicon-circle-arrow-down:before {
content: "\e134";
}
.glyphicon-globe:before {
content: "\e135";
}
.glyphicon-wrench:before {
content: "\e136";
}
.glyphicon-tasks:before {
content: "\e137";
}
.glyphicon-filter:before {
content: "\e138";
}
.glyphicon-briefcase:before {
content: "\e139";
}
.glyphicon-fullscreen:before {
content: "\e140";
}
.glyphicon-dashboard:before {
content: "\e141";
}
.glyphicon-paperclip:before {
content: "\e142";
}
.glyphicon-heart-empty:before {
content: "\e143";
}
.glyphicon-link:before {
content: "\e144";
}
.glyphicon-phone:before {
content: "\e145";
}
.glyphicon-pushpin:before {
content: "\e146";
}
.glyphicon-usd:before {
content: "\e148";
}
.glyphicon-gbp:before {
content: "\e149";
}
.glyphicon-sort:before {
content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
content: "\e152";
}
.glyphicon-sort-by-order:before {
content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
content: "\e154";
}
.glyphicon-sort-by-attributes:before {
content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
content: "\e156";
}
.glyphicon-unchecked:before {
content: "\e157";
}
.glyphicon-expand:before {
content: "\e158";
}
.glyphicon-collapse-down:before {
content: "\e159";
}
.glyphicon-collapse-up:before {
content: "\e160";
}
.glyphicon-log-in:before {
content: "\e161";
}
.glyphicon-flash:before {
content: "\e162";
}
.glyphicon-log-out:before {
content: "\e163";
}
.glyphicon-new-window:before {
content: "\e164";
}
.glyphicon-record:before {
content: "\e165";
}
.glyphicon-save:before {
content: "\e166";
}
.glyphicon-open:before {
content: "\e167";
}
.glyphicon-saved:before {
content: "\e168";
}
.glyphicon-import:before {
content: "\e169";
}
.glyphicon-export:before {
content: "\e170";
}
.glyphicon-send:before {
content: "\e171";
}
.glyphicon-floppy-disk:before {
content: "\e172";
}
.glyphicon-floppy-saved:before {
content: "\e173";
}
.glyphicon-floppy-remove:before {
content: "\e174";
}
.glyphicon-floppy-save:before {
content: "\e175";
}
.glyphicon-floppy-open:before {
content: "\e176";
}
.glyphicon-credit-card:before {
content: "\e177";
}
.glyphicon-transfer:before {
content: "\e178";
}
.glyphicon-cutlery:before {
content: "\e179";
}
.glyphicon-header:before {
content: "\e180";
}
.glyphicon-compressed:before {
content: "\e181";
}
.glyphicon-earphone:before {
content: "\e182";
}
.glyphicon-phone-alt:before {
content: "\e183";
}
.glyphicon-tower:before {
content: "\e184";
}
.glyphicon-stats:before {
content: "\e185";
}
.glyphicon-sd-video:before {
content: "\e186";
}
.glyphicon-hd-video:before {
content: "\e187";
}
.glyphicon-subtitles:before {
content: "\e188";
}
.glyphicon-sound-stereo:before {
content: "\e189";
}
.glyphicon-sound-dolby:before {
content: "\e190";
}
.glyphicon-sound-5-1:before {
content: "\e191";
}
.glyphicon-sound-6-1:before {
content: "\e192";
}
.glyphicon-sound-7-1:before {
content: "\e193";
}
.glyphicon-copyright-mark:before {
content: "\e194";
}
.glyphicon-registration-mark:before {
content: "\e195";
}
.glyphicon-cloud-download:before {
content: "\e197";
}
.glyphicon-cloud-upload:before {
content: "\e198";
}
.glyphicon-tree-conifer:before {
content: "\e199";
}
.glyphicon-tree-deciduous:before {
content: "\e200";
}
.glyphicon-cd:before {
content: "\e201";
}
.glyphicon-save-file:before {
content: "\e202";
}
.glyphicon-open-file:before {
content: "\e203";
}
.glyphicon-level-up:before {
content: "\e204";
}
.glyphicon-copy:before {
content: "\e205";
}
.glyphicon-paste:before {
content: "\e206";
}
.glyphicon-alert:before {
content: "\e209";
}
.glyphicon-equalizer:before {
content: "\e210";
}
.glyphicon-king:before {
content: "\e211";
}
.glyphicon-queen:before {
content: "\e212";
}
.glyphicon-pawn:before {
content: "\e213";
}
.glyphicon-bishop:before {
content: "\e214";
}
.glyphicon-knight:before {
content: "\e215";
}
.glyphicon-baby-formula:before {
content: "\e216";
}
.glyphicon-tent:before {
content: "\26fa";
}
.glyphicon-blackboard:before {
content: "\e218";
}
.glyphicon-bed:before {
content: "\e219";
}
.glyphicon-apple:before {
content: "\f8ff";
}
.glyphicon-erase:before {
content: "\e221";
}
.glyphicon-hourglass:before {
content: "\231b";
}
.glyphicon-lamp:before {
content: "\e223";
}
.glyphicon-duplicate:before {
content: "\e224";
}
.glyphicon-piggy-bank:before {
content: "\e225";
}
.glyphicon-scissors:before {
content: "\e226";
}
.glyphicon-bitcoin:before {
content: "\e227";
}
.glyphicon-btc:before {
content: "\e227";
}
.glyphicon-xbt:before {
content: "\e227";
}
.glyphicon-yen:before {
content: "\00a5";
}
.glyphicon-jpy:before {
content: "\00a5";
}
.glyphicon-ruble:before {
content: "\20bd";
}
.glyphicon-rub:before {
content: "\20bd";
}
.glyphicon-scale:before {
content: "\e230";
}
.glyphicon-ice-lolly:before {
content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
content: "\e232";
}
.glyphicon-education:before {
content: "\e233";
}
.glyphicon-option-horizontal:before {
content: "\e234";
}
.glyphicon-option-vertical:before {
content: "\e235";
}
.glyphicon-menu-hamburger:before {
content: "\e236";
}
.glyphicon-modal-window:before {
content: "\e237";
}
.glyphicon-oil:before {
content: "\e238";
}
.glyphicon-grain:before {
content: "\e239";
}
.glyphicon-sunglasses:before {
content: "\e240";
}
.glyphicon-text-size:before {
content: "\e241";
}
.glyphicon-text-color:before {
content: "\e242";
}
.glyphicon-text-background:before {
content: "\e243";
}
.glyphicon-object-align-top:before {
content: "\e244";
}
.glyphicon-object-align-bottom:before {
content: "\e245";
}
.glyphicon-object-align-horizontal:before {
content: "\e246";
}
.glyphicon-object-align-left:before {
content: "\e247";
}
.glyphicon-object-align-vertical:before {
content: "\e248";
}
.glyphicon-object-align-right:before {
content: "\e249";
}
.glyphicon-triangle-right:before {
content: "\e250";
}
.glyphicon-triangle-left:before {
content: "\e251";
}
.glyphicon-triangle-bottom:before {
content: "\e252";
}
.glyphicon-triangle-top:before {
content: "\e253";
}
.glyphicon-console:before {
content: "\e254";
}
.glyphicon-superscript:before {
content: "\e255";
}
.glyphicon-subscript:before {
content: "\e256";
}
.glyphicon-menu-left:before {
content: "\e257";
}
.glyphicon-menu-right:before {
content: "\e258";
}
.glyphicon-menu-down:before {
content: "\e259";
}
.glyphicon-menu-up:before {
content: "\e260";
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 1.42857143;
color: #000;
background-color: #fff;
}
input,
button,
select,
textarea {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
a {
color: #337ab7;
text-decoration: none;
}
a:hover,
a:focus {
color: #23527c;
text-decoration: underline;
}
a:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
figure {
margin: 0;
}
img {
vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
max-width: 100%;
height: auto;
}
.img-rounded {
border-radius: 3px;
}
.img-thumbnail {
padding: 4px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: inline-block;
max-width: 100%;
height: auto;
}
.img-circle {
border-radius: 50%;
}
hr {
margin-top: 18px;
margin-bottom: 18px;
border: 0;
border-top: 1px solid #eeeeee;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
[role="button"] {
cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
margin-top: 18px;
margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
margin-top: 9px;
margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
font-size: 75%;
}
h1,
.h1 {
font-size: 33px;
}
h2,
.h2 {
font-size: 27px;
}
h3,
.h3 {
font-size: 23px;
}
h4,
.h4 {
font-size: 17px;
}
h5,
.h5 {
font-size: 13px;
}
h6,
.h6 {
font-size: 12px;
}
p {
margin: 0 0 9px;
}
.lead {
margin-bottom: 18px;
font-size: 14px;
font-weight: 300;
line-height: 1.4;
}
@media (min-width: 768px) {
.lead {
font-size: 19.5px;
}
}
small,
.small {
font-size: 92%;
}
mark,
.mark {
background-color: #fcf8e3;
padding: .2em;
}
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
}
.text-nowrap {
white-space: nowrap;
}
.text-lowercase {
text-transform: lowercase;
}
.text-uppercase {
text-transform: uppercase;
}
.text-capitalize {
text-transform: capitalize;
}
.text-muted {
color: #777777;
}
.text-primary {
color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
color: #286090;
}
.text-success {
color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
color: #2b542c;
}
.text-info {
color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
color: #245269;
}
.text-warning {
color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
color: #66512c;
}
.text-danger {
color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
color: #843534;
}
.bg-primary {
color: #fff;
background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
background-color: #286090;
}
.bg-success {
background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
background-color: #c1e2b3;
}
.bg-info {
background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
background-color: #afd9ee;
}
.bg-warning {
background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
background-color: #f7ecb5;
}
.bg-danger {
background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
background-color: #e4b9b9;
}
.page-header {
padding-bottom: 8px;
margin: 36px 0 18px;
border-bottom: 1px solid #eeeeee;
}
ul,
ol {
margin-top: 0;
margin-bottom: 9px;
}
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;
margin-left: -5px;
}
.list-inline > li {
display: inline-block;
padding-left: 5px;
padding-right: 5px;
}
dl {
margin-top: 0;
margin-bottom: 18px;
}
dt,
dd {
line-height: 1.42857143;
}
dt {
font-weight: bold;
}
dd {
margin-left: 0;
}
@media (min-width: 541px) {
.dl-horizontal dt {
float: left;
width: 160px;
clear: left;
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dl-horizontal dd {
margin-left: 180px;
}
}
abbr[title],
abbr[data-original-title] {
cursor: help;
border-bottom: 1px dotted #777777;
}
.initialism {
font-size: 90%;
text-transform: uppercase;
}
blockquote {
padding: 9px 18px;
margin: 0 0 18px;
font-size: inherit;
border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
display: block;
font-size: 80%;
line-height: 1.42857143;
color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid #eeeeee;
border-left: 0;
text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
content: '\00A0 \2014';
}
address {
margin-bottom: 18px;
font-style: normal;
line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
font-family: monospace;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 2px;
}
kbd {
padding: 2px 4px;
font-size: 90%;
color: #888;
background-color: transparent;
border-radius: 1px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: bold;
box-shadow: none;
}
pre {
display: block;
padding: 8.5px;
margin: 0 0 9px;
font-size: 12px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
color: #333333;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 2px;
}
pre code {
padding: 0;
font-size: inherit;
color: inherit;
white-space: pre-wrap;
background-color: transparent;
border-radius: 0;
}
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
.container {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
@media (min-width: 768px) {
.container {
width: 768px;
}
}
@media (min-width: 992px) {
.container {
width: 940px;
}
}
@media (min-width: 1200px) {
.container {
width: 1140px;
}
}
.container-fluid {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
.row {
margin-left: 0px;
margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-left: 0px;
padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
.col-xs-12 {
width: 100%;
}
.col-xs-11 {
width: 91.66666667%;
}
.col-xs-10 {
width: 83.33333333%;
}
.col-xs-9 {
width: 75%;
}
.col-xs-8 {
width: 66.66666667%;
}
.col-xs-7 {
width: 58.33333333%;
}
.col-xs-6 {
width: 50%;
}
.col-xs-5 {
width: 41.66666667%;
}
.col-xs-4 {
width: 33.33333333%;
}
.col-xs-3 {
width: 25%;
}
.col-xs-2 {
width: 16.66666667%;
}
.col-xs-1 {
width: 8.33333333%;
}
.col-xs-pull-12 {
right: 100%;
}
.col-xs-pull-11 {
right: 91.66666667%;
}
.col-xs-pull-10 {
right: 83.33333333%;
}
.col-xs-pull-9 {
right: 75%;
}
.col-xs-pull-8 {
right: 66.66666667%;
}
.col-xs-pull-7 {
right: 58.33333333%;
}
.col-xs-pull-6 {
right: 50%;
}
.col-xs-pull-5 {
right: 41.66666667%;
}
.col-xs-pull-4 {
right: 33.33333333%;
}
.col-xs-pull-3 {
right: 25%;
}
.col-xs-pull-2 {
right: 16.66666667%;
}
.col-xs-pull-1 {
right: 8.33333333%;
}
.col-xs-pull-0 {
right: auto;
}
.col-xs-push-12 {
left: 100%;
}
.col-xs-push-11 {
left: 91.66666667%;
}
.col-xs-push-10 {
left: 83.33333333%;
}
.col-xs-push-9 {
left: 75%;
}
.col-xs-push-8 {
left: 66.66666667%;
}
.col-xs-push-7 {
left: 58.33333333%;
}
.col-xs-push-6 {
left: 50%;
}
.col-xs-push-5 {
left: 41.66666667%;
}
.col-xs-push-4 {
left: 33.33333333%;
}
.col-xs-push-3 {
left: 25%;
}
.col-xs-push-2 {
left: 16.66666667%;
}
.col-xs-push-1 {
left: 8.33333333%;
}
.col-xs-push-0 {
left: auto;
}
.col-xs-offset-12 {
margin-left: 100%;
}
.col-xs-offset-11 {
margin-left: 91.66666667%;
}
.col-xs-offset-10 {
margin-left: 83.33333333%;
}
.col-xs-offset-9 {
margin-left: 75%;
}
.col-xs-offset-8 {
margin-left: 66.66666667%;
}
.col-xs-offset-7 {
margin-left: 58.33333333%;
}
.col-xs-offset-6 {
margin-left: 50%;
}
.col-xs-offset-5 {
margin-left: 41.66666667%;
}
.col-xs-offset-4 {
margin-left: 33.33333333%;
}
.col-xs-offset-3 {
margin-left: 25%;
}
.col-xs-offset-2 {
margin-left: 16.66666667%;
}
.col-xs-offset-1 {
margin-left: 8.33333333%;
}
.col-xs-offset-0 {
margin-left: 0%;
}
@media (min-width: 768px) {
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
float: left;
}
.col-sm-12 {
width: 100%;
}
.col-sm-11 {
width: 91.66666667%;
}
.col-sm-10 {
width: 83.33333333%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-8 {
width: 66.66666667%;
}
.col-sm-7 {
width: 58.33333333%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-5 {
width: 41.66666667%;
}
.col-sm-4 {
width: 33.33333333%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-2 {
width: 16.66666667%;
}
.col-sm-1 {
width: 8.33333333%;
}
.col-sm-pull-12 {
right: 100%;
}
.col-sm-pull-11 {
right: 91.66666667%;
}
.col-sm-pull-10 {
right: 83.33333333%;
}
.col-sm-pull-9 {
right: 75%;
}
.col-sm-pull-8 {
right: 66.66666667%;
}
.col-sm-pull-7 {
right: 58.33333333%;
}
.col-sm-pull-6 {
right: 50%;
}
.col-sm-pull-5 {
right: 41.66666667%;
}
.col-sm-pull-4 {
right: 33.33333333%;
}
.col-sm-pull-3 {
right: 25%;
}
.col-sm-pull-2 {
right: 16.66666667%;
}
.col-sm-pull-1 {
right: 8.33333333%;
}
.col-sm-pull-0 {
right: auto;
}
.col-sm-push-12 {
left: 100%;
}
.col-sm-push-11 {
left: 91.66666667%;
}
.col-sm-push-10 {
left: 83.33333333%;
}
.col-sm-push-9 {
left: 75%;
}
.col-sm-push-8 {
left: 66.66666667%;
}
.col-sm-push-7 {
left: 58.33333333%;
}
.col-sm-push-6 {
left: 50%;
}
.col-sm-push-5 {
left: 41.66666667%;
}
.col-sm-push-4 {
left: 33.33333333%;
}
.col-sm-push-3 {
left: 25%;
}
.col-sm-push-2 {
left: 16.66666667%;
}
.col-sm-push-1 {
left: 8.33333333%;
}
.col-sm-push-0 {
left: auto;
}
.col-sm-offset-12 {
margin-left: 100%;
}
.col-sm-offset-11 {
margin-left: 91.66666667%;
}
.col-sm-offset-10 {
margin-left: 83.33333333%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-8 {
margin-left: 66.66666667%;
}
.col-sm-offset-7 {
margin-left: 58.33333333%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-5 {
margin-left: 41.66666667%;
}
.col-sm-offset-4 {
margin-left: 33.33333333%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-2 {
margin-left: 16.66666667%;
}
.col-sm-offset-1 {
margin-left: 8.33333333%;
}
.col-sm-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 992px) {
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
float: left;
}
.col-md-12 {
width: 100%;
}
.col-md-11 {
width: 91.66666667%;
}
.col-md-10 {
width: 83.33333333%;
}
.col-md-9 {
width: 75%;
}
.col-md-8 {
width: 66.66666667%;
}
.col-md-7 {
width: 58.33333333%;
}
.col-md-6 {
width: 50%;
}
.col-md-5 {
width: 41.66666667%;
}
.col-md-4 {
width: 33.33333333%;
}
.col-md-3 {
width: 25%;
}
.col-md-2 {
width: 16.66666667%;
}
.col-md-1 {
width: 8.33333333%;
}
.col-md-pull-12 {
right: 100%;
}
.col-md-pull-11 {
right: 91.66666667%;
}
.col-md-pull-10 {
right: 83.33333333%;
}
.col-md-pull-9 {
right: 75%;
}
.col-md-pull-8 {
right: 66.66666667%;
}
.col-md-pull-7 {
right: 58.33333333%;
}
.col-md-pull-6 {
right: 50%;
}
.col-md-pull-5 {
right: 41.66666667%;
}
.col-md-pull-4 {
right: 33.33333333%;
}
.col-md-pull-3 {
right: 25%;
}
.col-md-pull-2 {
right: 16.66666667%;
}
.col-md-pull-1 {
right: 8.33333333%;
}
.col-md-pull-0 {
right: auto;
}
.col-md-push-12 {
left: 100%;
}
.col-md-push-11 {
left: 91.66666667%;
}
.col-md-push-10 {
left: 83.33333333%;
}
.col-md-push-9 {
left: 75%;
}
.col-md-push-8 {
left: 66.66666667%;
}
.col-md-push-7 {
left: 58.33333333%;
}
.col-md-push-6 {
left: 50%;
}
.col-md-push-5 {
left: 41.66666667%;
}
.col-md-push-4 {
left: 33.33333333%;
}
.col-md-push-3 {
left: 25%;
}
.col-md-push-2 {
left: 16.66666667%;
}
.col-md-push-1 {
left: 8.33333333%;
}
.col-md-push-0 {
left: auto;
}
.col-md-offset-12 {
margin-left: 100%;
}
.col-md-offset-11 {
margin-left: 91.66666667%;
}
.col-md-offset-10 {
margin-left: 83.33333333%;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-offset-8 {
margin-left: 66.66666667%;
}
.col-md-offset-7 {
margin-left: 58.33333333%;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-offset-5 {
margin-left: 41.66666667%;
}
.col-md-offset-4 {
margin-left: 33.33333333%;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-offset-2 {
margin-left: 16.66666667%;
}
.col-md-offset-1 {
margin-left: 8.33333333%;
}
.col-md-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 1200px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-12 {
width: 100%;
}
.col-lg-11 {
width: 91.66666667%;
}
.col-lg-10 {
width: 83.33333333%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-8 {
width: 66.66666667%;
}
.col-lg-7 {
width: 58.33333333%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-5 {
width: 41.66666667%;
}
.col-lg-4 {
width: 33.33333333%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-2 {
width: 16.66666667%;
}
.col-lg-1 {
width: 8.33333333%;
}
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
right: 91.66666667%;
}
.col-lg-pull-10 {
right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
right: 66.66666667%;
}
.col-lg-pull-7 {
right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
right: 41.66666667%;
}
.col-lg-pull-4 {
right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
right: 16.66666667%;
}
.col-lg-pull-1 {
right: 8.33333333%;
}
.col-lg-pull-0 {
right: auto;
}
.col-lg-push-12 {
left: 100%;
}
.col-lg-push-11 {
left: 91.66666667%;
}
.col-lg-push-10 {
left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
left: 66.66666667%;
}
.col-lg-push-7 {
left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
left: 41.66666667%;
}
.col-lg-push-4 {
left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
left: 16.66666667%;
}
.col-lg-push-1 {
left: 8.33333333%;
}
.col-lg-push-0 {
left: auto;
}
.col-lg-offset-12 {
margin-left: 100%;
}
.col-lg-offset-11 {
margin-left: 91.66666667%;
}
.col-lg-offset-10 {
margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
margin-left: 66.66666667%;
}
.col-lg-offset-7 {
margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
margin-left: 41.66666667%;
}
.col-lg-offset-4 {
margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
margin-left: 16.66666667%;
}
.col-lg-offset-1 {
margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0%;
}
}
table {
background-color: transparent;
}
caption {
padding-top: 8px;
padding-bottom: 8px;
color: #777777;
text-align: left;
}
th {
text-align: left;
}
.table {
width: 100%;
max-width: 100%;
margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
.table > thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
border-top: 0;
}
.table > tbody + tbody {
border-top: 2px solid #ddd;
}
.table .table {
background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
padding: 5px;
}
.table-bordered {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
table col[class*="col-"] {
position: static;
float: none;
display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
position: static;
float: none;
display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
.table-responsive {
overflow-x: auto;
min-height: 0.01%;
}
@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 13.5px;
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}
.table-responsive > .table {
margin-bottom: 0;
}
.table-responsive > .table > thead > tr > th,
.table-responsive > .table > tbody > tr > th,
.table-responsive > .table > tfoot > tr > th,
.table-responsive > .table > thead > tr > td,
.table-responsive > .table > tbody > tr > td,
.table-responsive > .table > tfoot > tr > td {
white-space: nowrap;
}
.table-responsive > .table-bordered {
border: 0;
}
.table-responsive > .table-bordered > thead > tr > th:first-child,
.table-responsive > .table-bordered > tbody > tr > th:first-child,
.table-responsive > .table-bordered > tfoot > tr > th:first-child,
.table-responsive > .table-bordered > thead > tr > td:first-child,
.table-responsive > .table-bordered > tbody > tr > td:first-child,
.table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.table-responsive > .table-bordered > thead > tr > th:last-child,
.table-responsive > .table-bordered > tbody > tr > th:last-child,
.table-responsive > .table-bordered > tfoot > tr > th:last-child,
.table-responsive > .table-bordered > thead > tr > td:last-child,
.table-responsive > .table-bordered > tbody > tr > td:last-child,
.table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.table-responsive > .table-bordered > tbody > tr:last-child > th,
.table-responsive > .table-bordered > tfoot > tr:last-child > th,
.table-responsive > .table-bordered > tbody > tr:last-child > td,
.table-responsive > .table-bordered > tfoot > tr:last-child > td {
border-bottom: 0;
}
}
fieldset {
padding: 0;
margin: 0;
border: 0;
min-width: 0;
}
legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: 18px;
font-size: 19.5px;
line-height: inherit;
color: #333333;
border: 0;
border-bottom: 1px solid #e5e5e5;
}
label {
display: inline-block;
max-width: 100%;
margin-bottom: 5px;
font-weight: bold;
}
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
line-height: normal;
}
input[type="file"] {
display: block;
}
input[type="range"] {
display: block;
width: 100%;
}
select[multiple],
select[size] {
height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
output {
display: block;
padding-top: 7px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
}
.form-control {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-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;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
color: #999;
opacity: 1;
}
.form-control:-ms-input-placeholder {
color: #999;
}
.form-control::-webkit-input-placeholder {
color: #999;
}
.form-control::-ms-expand {
border: 0;
background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eeeeee;
opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
cursor: not-allowed;
}
textarea.form-control {
height: auto;
}
input[type="search"] {
-webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"].form-control,
input[type="time"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control {
line-height: 32px;
}
input[type="date"].input-sm,
input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
input[type="month"].input-sm,
.input-group-sm input[type="date"],
.input-group-sm input[type="time"],
.input-group-sm input[type="datetime-local"],
.input-group-sm input[type="month"] {
line-height: 30px;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
input[type="month"].input-lg,
.input-group-lg input[type="date"],
.input-group-lg input[type="time"],
.input-group-lg input[type="datetime-local"],
.input-group-lg input[type="month"] {
line-height: 45px;
}
}
.form-group {
margin-bottom: 15px;
}
.radio,
.checkbox {
position: relative;
display: block;
margin-top: 10px;
margin-bottom: 10px;
}
.radio label,
.checkbox label {
min-height: 18px;
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: absolute;
margin-left: -20px;
margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
position: relative;
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],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
padding-left: 0;
padding-right: 0;
}
.input-sm {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-sm {
height: 30px;
line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
height: auto;
}
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.form-group-sm select.form-control {
height: 30px;
line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
height: auto;
}
.form-group-sm .form-control-static {
height: 30px;
min-height: 30px;
padding: 6px 10px;
font-size: 12px;
line-height: 1.5;
}
.input-lg {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-lg {
height: 45px;
line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
height: auto;
}
.form-group-lg .form-control {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.form-group-lg select.form-control {
height: 45px;
line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
height: auto;
}
.form-group-lg .form-control-static {
height: 45px;
min-height: 35px;
padding: 11px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.has-feedback {
position: relative;
}
.has-feedback .form-control {
padding-right: 40px;
}
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 32px;
height: 32px;
line-height: 32px;
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
width: 45px;
height: 45px;
line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
color: #3c763d;
}
.has-success .form-control {
border-color: #3c763d;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
border-color: #2b542c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
color: #3c763d;
border-color: #3c763d;
background-color: #dff0d8;
}
.has-success .form-control-feedback {
color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
color: #8a6d3b;
}
.has-warning .form-control {
border-color: #8a6d3b;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
border-color: #66512c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
color: #8a6d3b;
border-color: #8a6d3b;
background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
color: #a94442;
}
.has-error .form-control {
border-color: #a94442;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
border-color: #843534;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
color: #a94442;
border-color: #a94442;
background-color: #f2dede;
}
.has-error .form-control-feedback {
color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
top: 0;
}
.help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
color: #404040;
}
@media (min-width: 768px) {
.form-inline .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.form-inline .form-control-static {
display: inline-block;
}
.form-inline .input-group {
display: inline-table;
vertical-align: middle;
}
.form-inline .input-group .input-group-addon,
.form-inline .input-group .input-group-btn,
.form-inline .input-group .form-control {
width: auto;
}
.form-inline .input-group > .form-control {
width: 100%;
}
.form-inline .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio label,
.form-inline .checkbox label {
padding-left: 0;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
margin-top: 0;
margin-bottom: 0;
padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
min-height: 25px;
}
.form-horizontal .form-group {
margin-left: 0px;
margin-right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
margin-bottom: 0;
padding-top: 7px;
}
}
.form-horizontal .has-feedback .form-control-feedback {
right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label {
padding-top: 11px;
font-size: 17px;
}
}
@media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label {
padding-top: 6px;
font-size: 12px;
}
}
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
border-radius: 2px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
color: #333;
text-decoration: none;
}
.btn:active,
.btn.active {
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;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
pointer-events: none;
}
.btn-default {
color: #333;
background-color: #fff;
border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.btn-default:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
background-color: #fff;
border-color: #ccc;
}
.btn-default .badge {
color: #fff;
background-color: #333;
}
.btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.btn-primary:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary .badge {
color: #337ab7;
background-color: #fff;
}
.btn-success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.btn-success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success .badge {
color: #5cb85c;
background-color: #fff;
}
.btn-info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.btn-info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info .badge {
color: #5bc0de;
background-color: #fff;
}
.btn-warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.btn-warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
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:focus,
.btn-danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.btn-danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger .badge {
color: #d9534f;
background-color: #fff;
}
.btn-link {
color: #337ab7;
font-weight: normal;
border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
color: #23527c;
text-decoration: underline;
background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
color: #777777;
text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-block {
display: block;
width: 100%;
}
.btn-block + .btn-block {
margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%;
}
.fade {
opacity: 0;
-webkit-transition: opacity 0.15s linear;
-o-transition: opacity 0.15s linear;
transition: opacity 0.15s linear;
}
.fade.in {
opacity: 1;
}
.collapse {
display: none;
}
.collapse.in {
display: block;
}
tr.collapse.in {
display: table-row;
}
tbody.collapse.in {
display: table-row-group;
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition-property: height, visibility;
transition-property: height, visibility;
-webkit-transition-duration: 0.35s;
transition-duration: 0.35s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px dashed;
border-top: 4px solid \9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
.dropup,
.dropdown {
position: relative;
}
.dropdown-toggle:focus {
outline: 0;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 13px;
text-align: left;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 2px;
-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: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.42857143;
color: #333333;
white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
text-decoration: none;
color: #262626;
background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: #fff;
text-decoration: none;
outline: 0;
background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
cursor: not-allowed;
}
.open > .dropdown-menu {
display: block;
}
.open > a {
outline: 0;
}
.dropdown-menu-right {
left: auto;
right: 0;
}
.dropdown-menu-left {
left: 0;
right: auto;
}
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
line-height: 1.42857143;
color: #777777;
white-space: nowrap;
}
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 990;
}
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
border-top: 0;
border-bottom: 4px dashed;
border-bottom: 4px solid \9;
content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 2px;
}
@media (min-width: 541px) {
.navbar-right .dropdown-menu {
left: auto;
right: 0;
}
.navbar-right .dropdown-menu-left {
left: 0;
right: auto;
}
}
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-block;
vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;
}
.btn-toolbar {
margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}
.btn-group > .btn:first-child {
margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group > .btn-group {
float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
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 > .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: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
border-top-right-radius: 0;
border-top-left-radius: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.btn-group-justified {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
float: none;
display: table-cell;
width: 1%;
}
.btn-group-justified > .btn-group .btn {
width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
.input-group {
position: relative;
display: table;
border-collapse: separate;
}
.input-group[class*="col-"] {
float: none;
padding-left: 0;
padding-right: 0;
}
.input-group .form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
}
.input-group .form-control:focus {
z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
height: 45px;
line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
height: 30px;
line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
border-radius: 0;
}
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
vertical-align: middle;
}
.input-group-addon {
padding: 6px 12px;
font-size: 13px;
font-weight: normal;
line-height: 1;
color: #555555;
text-align: center;
background-color: #eeeeee;
border: 1px solid #ccc;
border-radius: 2px;
}
.input-group-addon.input-sm {
padding: 5px 10px;
font-size: 12px;
border-radius: 1px;
}
.input-group-addon.input-lg {
padding: 10px 16px;
font-size: 17px;
border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.input-group-addon:first-child {
border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.input-group-addon:last-child {
border-left: 0;
}
.input-group-btn {
position: relative;
font-size: 0;
white-space: nowrap;
}
.input-group-btn > .btn {
position: relative;
}
.input-group-btn > .btn + .btn {
margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
z-index: 2;
margin-left: -1px;
}
.nav {
margin-bottom: 0;
padding-left: 0;
list-style: none;
}
.nav > li {
position: relative;
display: block;
}
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.nav > li.disabled > a {
color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
color: #777777;
text-decoration: none;
background-color: transparent;
cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #eeeeee;
border-color: #337ab7;
}
.nav .nav-divider {
height: 1px;
margin: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.nav > li > a > img {
max-width: none;
}
.nav-tabs {
border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
float: left;
margin-bottom: -1px;
}
.nav-tabs > li > a {
margin-right: 2px;
line-height: 1.42857143;
border: 1px solid transparent;
border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
color: #555555;
background-color: #fff;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
.nav-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: 2px;
}
.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: 2px 2px 0 0;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.nav-pills > li {
float: left;
}
.nav-pills > li > a {
border-radius: 2px;
}
.nav-pills > li + li {
margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
color: #fff;
background-color: #337ab7;
}
.nav-stacked > li {
float: none;
}
.nav-stacked > li + li {
margin-top: 2px;
margin-left: 0;
}
.nav-justified {
width: 100%;
}
.nav-justified > li {
float: none;
}
.nav-justified > li > a {
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: 2px;
}
.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: 2px 2px 0 0;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.tab-content > .tab-pane {
display: none;
}
.tab-content > .active {
display: block;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar {
position: relative;
min-height: 30px;
margin-bottom: 18px;
border: 1px solid transparent;
}
@media (min-width: 541px) {
.navbar {
border-radius: 2px;
}
}
@media (min-width: 541px) {
.navbar-header {
float: left;
}
}
.navbar-collapse {
overflow-x: visible;
padding-right: 0px;
padding-left: 0px;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
overflow-y: auto;
}
@media (min-width: 541px) {
.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;
}
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 200px;
}
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0px;
margin-left: 0px;
}
@media (min-width: 541px) {
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0;
margin-left: 0;
}
}
.navbar-static-top {
z-index: 1000;
border-width: 0 0 1px;
}
@media (min-width: 541px) {
.navbar-static-top {
border-radius: 0;
}
}
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
right: 0;
left: 0;
z-index: 1030;
}
@media (min-width: 541px) {
.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: 6px 0px;
font-size: 17px;
line-height: 18px;
height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
text-decoration: none;
}
.navbar-brand > img {
display: block;
}
@media (min-width: 541px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
margin-left: 0px;
}
}
.navbar-toggle {
position: relative;
float: right;
margin-right: 0px;
padding: 9px 10px;
margin-top: -2px;
margin-bottom: -2px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 2px;
}
.navbar-toggle:focus {
outline: 0;
}
.navbar-toggle .icon-bar {
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
margin-top: 4px;
}
@media (min-width: 541px) {
.navbar-toggle {
display: none;
}
}
.navbar-nav {
margin: 3px 0px;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 18px;
}
@media (max-width: 540px) {
.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: 18px;
}
.navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-nav .open .dropdown-menu > li > a:focus {
background-image: none;
}
}
@media (min-width: 541px) {
.navbar-nav {
float: left;
margin: 0;
}
.navbar-nav > li {
float: left;
}
.navbar-nav > li > a {
padding-top: 6px;
padding-bottom: 6px;
}
}
.navbar-form {
margin-left: 0px;
margin-right: 0px;
padding: 10px 0px;
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: -1px;
margin-bottom: -1px;
}
@media (min-width: 768px) {
.navbar-form .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.navbar-form .form-control-static {
display: inline-block;
}
.navbar-form .input-group {
display: inline-table;
vertical-align: middle;
}
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn,
.navbar-form .input-group .form-control {
width: auto;
}
.navbar-form .input-group > .form-control {
width: 100%;
}
.navbar-form .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio,
.navbar-form .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio label,
.navbar-form .checkbox label {
padding-left: 0;
}
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.navbar-form .has-feedback .form-control-feedback {
top: 0;
}
}
@media (max-width: 540px) {
.navbar-form .form-group {
margin-bottom: 5px;
}
.navbar-form .form-group:last-child {
margin-bottom: 0;
}
}
@media (min-width: 541px) {
.navbar-form {
width: auto;
border: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
}
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
margin-bottom: 0;
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.navbar-btn {
margin-top: -1px;
margin-bottom: -1px;
}
.navbar-btn.btn-sm {
margin-top: 0px;
margin-bottom: 0px;
}
.navbar-btn.btn-xs {
margin-top: 4px;
margin-bottom: 4px;
}
.navbar-text {
margin-top: 6px;
margin-bottom: 6px;
}
@media (min-width: 541px) {
.navbar-text {
float: left;
margin-left: 0px;
margin-right: 0px;
}
}
@media (min-width: 541px) {
.navbar-left {
float: left !important;
float: left;
}
.navbar-right {
float: right !important;
float: right;
margin-right: 0px;
}
.navbar-right ~ .navbar-right {
margin-right: 0;
}
}
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
color: #5e5e5e;
background-color: transparent;
}
.navbar-default .navbar-text {
color: #777;
}
.navbar-default .navbar-nav > li > a {
color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
.navbar-default .navbar-toggle {
border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
background-color: #e7e7e7;
color: #555;
}
@media (max-width: 540px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
color: #777;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
}
.navbar-default .navbar-link {
color: #777;
}
.navbar-default .navbar-link:hover {
color: #333;
}
.navbar-default .btn-link {
color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
color: #ccc;
}
.navbar-inverse {
background-color: #222;
border-color: #080808;
}
.navbar-inverse .navbar-brand {
color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-text {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
color: #444;
background-color: transparent;
}
.navbar-inverse .navbar-toggle {
border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
background-color: #080808;
color: #fff;
}
@media (max-width: 540px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
border-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #444;
background-color: transparent;
}
}
.navbar-inverse .navbar-link {
color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
color: #fff;
}
.navbar-inverse .btn-link {
color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
color: #444;
}
.breadcrumb {
padding: 8px 15px;
margin-bottom: 18px;
list-style: none;
background-color: #f5f5f5;
border-radius: 2px;
}
.breadcrumb > li {
display: inline-block;
}
.breadcrumb > li + li:before {
content: "/\00a0";
padding: 0 5px;
color: #5e5e5e;
}
.breadcrumb > .active {
color: #777777;
}
.pagination {
display: inline-block;
padding-left: 0;
margin: 18px 0;
border-radius: 2px;
}
.pagination > li {
display: inline;
}
.pagination > li > a,
.pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
line-height: 1.42857143;
text-decoration: none;
color: #337ab7;
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: 2px;
border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
border-bottom-right-radius: 2px;
border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
z-index: 2;
color: #23527c;
background-color: #eeeeee;
border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
z-index: 3;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
color: #777777;
background-color: #fff;
border-color: #ddd;
cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
border-bottom-left-radius: 1px;
border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-bottom-right-radius: 1px;
border-top-right-radius: 1px;
}
.pager {
padding-left: 0;
margin: 18px 0;
list-style: none;
text-align: center;
}
.pager li {
display: inline;
}
.pager li > a,
.pager li > span {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
float: right;
}
.pager .previous > a,
.pager .previous > span {
float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
color: #777777;
background-color: #fff;
cursor: not-allowed;
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
a.label:hover,
a.label:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.label:empty {
display: none;
}
.btn .label {
position: relative;
top: -1px;
}
.label-default {
background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
background-color: #5e5e5e;
}
.label-primary {
background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
background-color: #286090;
}
.label-success {
background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
background-color: #449d44;
}
.label-info {
background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
background-color: #31b0d5;
}
.label-warning {
background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
background-color: #ec971f;
}
.label-danger {
background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
background-color: #c9302c;
}
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
color: #fff;
line-height: 1;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: #777777;
border-radius: 10px;
}
.badge:empty {
display: none;
}
.btn .badge {
position: relative;
top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
color: #337ab7;
background-color: #fff;
}
.list-group-item > .badge {
float: right;
}
.list-group-item > .badge + .badge {
margin-right: 5px;
}
.nav-pills > li > a > .badge {
margin-left: 3px;
}
.jumbotron {
padding-top: 30px;
padding-bottom: 30px;
margin-bottom: 30px;
color: inherit;
background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
color: inherit;
}
.jumbotron p {
margin-bottom: 15px;
font-size: 20px;
font-weight: 200;
}
.jumbotron > hr {
border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
border-radius: 3px;
padding-left: 0px;
padding-right: 0px;
}
.jumbotron .container {
max-width: 100%;
}
@media screen and (min-width: 768px) {
.jumbotron {
padding-top: 48px;
padding-bottom: 48px;
}
.container .jumbotron,
.container-fluid .jumbotron {
padding-left: 60px;
padding-right: 60px;
}
.jumbotron h1,
.jumbotron .h1 {
font-size: 59px;
}
}
.thumbnail {
display: block;
padding: 4px;
margin-bottom: 18px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: border 0.2s ease-in-out;
-o-transition: border 0.2s ease-in-out;
transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
margin-left: auto;
margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
border-color: #337ab7;
}
.thumbnail .caption {
padding: 9px;
color: #000;
}
.alert {
padding: 15px;
margin-bottom: 18px;
border: 1px solid transparent;
border-radius: 2px;
}
.alert h4 {
margin-top: 0;
color: inherit;
}
.alert .alert-link {
font-weight: bold;
}
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p + p {
margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
.alert-success {
background-color: #dff0d8;
border-color: #d6e9c6;
color: #3c763d;
}
.alert-success hr {
border-top-color: #c9e2b3;
}
.alert-success .alert-link {
color: #2b542c;
}
.alert-info {
background-color: #d9edf7;
border-color: #bce8f1;
color: #31708f;
}
.alert-info hr {
border-top-color: #a6e1ec;
}
.alert-info .alert-link {
color: #245269;
}
.alert-warning {
background-color: #fcf8e3;
border-color: #faebcc;
color: #8a6d3b;
}
.alert-warning hr {
border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
color: #66512c;
}
.alert-danger {
background-color: #f2dede;
border-color: #ebccd1;
color: #a94442;
}
.alert-danger hr {
border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
.progress {
overflow: hidden;
height: 18px;
margin-bottom: 18px;
background-color: #f5f5f5;
border-radius: 2px;
-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: 12px;
line-height: 18px;
color: #fff;
text-align: center;
background-color: #337ab7;
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media,
.media-body {
zoom: 1;
overflow: hidden;
}
.media-body {
width: 10000px;
}
.media-object {
display: block;
}
.media-object.img-thumbnail {
max-width: none;
}
.media-right,
.media > .pull-right {
padding-left: 10px;
}
.media-left,
.media > .pull-left {
padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
display: table-cell;
vertical-align: top;
}
.media-middle {
vertical-align: middle;
}
.media-bottom {
vertical-align: bottom;
}
.media-heading {
margin-top: 0;
margin-bottom: 5px;
}
.media-list {
padding-left: 0;
list-style: none;
}
.list-group {
margin-bottom: 20px;
padding-left: 0;
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid #ddd;
}
.list-group-item:first-child {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
}
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
text-decoration: none;
color: #555;
background-color: #f5f5f5;
}
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
background-color: #eeeeee;
color: #777777;
cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
z-index: 2;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
color: #c7ddef;
}
.list-group-item-success {
color: #3c763d;
background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
color: #3c763d;
background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
color: #fff;
background-color: #3c763d;
border-color: #3c763d;
}
.list-group-item-info {
color: #31708f;
background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
color: #31708f;
background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
color: #fff;
background-color: #31708f;
border-color: #31708f;
}
.list-group-item-warning {
color: #8a6d3b;
background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
color: #8a6d3b;
background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
color: #fff;
background-color: #8a6d3b;
border-color: #8a6d3b;
}
.list-group-item-danger {
color: #a94442;
background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
color: #a94442;
background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
color: #fff;
background-color: #a94442;
border-color: #a94442;
}
.list-group-item-heading {
margin-top: 0;
margin-bottom: 5px;
}
.list-group-item-text {
margin-bottom: 0;
line-height: 1.3;
}
.panel {
margin-bottom: 18px;
background-color: #fff;
border: 1px solid transparent;
border-radius: 2px;
-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-heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
color: inherit;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 15px;
color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
color: inherit;
}
.panel-footer {
padding: 10px 15px;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
border-width: 1px 0;
border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
border-top: 0;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
border-bottom: 0;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
border-top-width: 0;
}
.list-group + .panel-footer {
border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
padding-left: 15px;
padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
border-top-left-radius: 1px;
border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
border-bottom-left-radius: 1px;
border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
border-bottom: 0;
}
.panel > .table-responsive {
border: 0;
margin-bottom: 0;
}
.panel-group {
margin-bottom: 18px;
}
.panel-group .panel {
margin-bottom: 0;
border-radius: 2px;
}
.panel-group .panel + .panel {
margin-top: 5px;
}
.panel-group .panel-heading {
border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
border-bottom: 1px solid #ddd;
}
.panel-default {
border-color: #ddd;
}
.panel-default > .panel-heading {
color: #333333;
background-color: #f5f5f5;
border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
color: #f5f5f5;
background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ddd;
}
.panel-primary {
border-color: #337ab7;
}
.panel-primary > .panel-heading {
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
color: #337ab7;
background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #337ab7;
}
.panel-success {
border-color: #d6e9c6;
}
.panel-success > .panel-heading {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
color: #dff0d8;
background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #d6e9c6;
}
.panel-info {
border-color: #bce8f1;
}
.panel-info > .panel-heading {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
color: #d9edf7;
background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #bce8f1;
}
.panel-warning {
border-color: #faebcc;
}
.panel-warning > .panel-heading {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
color: #fcf8e3;
background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #faebcc;
}
.panel-danger {
border-color: #ebccd1;
}
.panel-danger > .panel-heading {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
color: #f2dede;
background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ebccd1;
}
.embed-responsive {
position: relative;
display: block;
height: 0;
padding: 0;
overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 100%;
border: 0;
}
.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
padding-bottom: 75%;
}
.well {
min-height: 20px;
padding: 19px;
margin-bottom: 20px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 2px;
-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: 3px;
}
.well-sm {
padding: 9px;
border-radius: 1px;
}
.close {
float: right;
font-size: 19.5px;
font-weight: bold;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: 0.2;
filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
opacity: 0.5;
filter: alpha(opacity=50);
}
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.modal-open {
overflow: hidden;
}
.modal {
display: none;
overflow: hidden;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal.fade .modal-dialog {
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
-webkit-transition: -webkit-transform 0.3s ease-out;
-moz-transition: -moz-transform 0.3s ease-out;
-o-transition: -o-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #fff;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
background-clip: padding-box;
outline: 0;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
opacity: 0;
filter: alpha(opacity=0);
}
.modal-backdrop.in {
opacity: 0.5;
filter: alpha(opacity=50);
}
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-title {
margin: 0;
line-height: 1.42857143;
}
.modal-body {
position: relative;
padding: 15px;
}
.modal-footer {
padding: 15px;
text-align: right;
border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
margin-left: 5px;
margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
.tooltip {
position: absolute;
z-index: 1070;
display: block;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 12px;
opacity: 0;
filter: alpha(opacity=0);
}
.tooltip.in {
opacity: 0.9;
filter: alpha(opacity=90);
}
.tooltip.top {
margin-top: -3px;
padding: 5px 0;
}
.tooltip.right {
margin-left: 3px;
padding: 0 5px;
}
.tooltip.bottom {
margin-top: 3px;
padding: 5px 0;
}
.tooltip.left {
margin-left: -3px;
padding: 0 5px;
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
color: #fff;
text-align: center;
background-color: #000;
border-radius: 2px;
}
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.tooltip.top .tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
bottom: 0;
right: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
bottom: 0;
left: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
border-width: 5px 5px 5px 0;
border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
border-width: 5px 0 5px 5px;
border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
top: 0;
right: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
top: 0;
left: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.popover {
position: absolute;
top: 0;
left: 0;
z-index: 1060;
display: none;
max-width: 276px;
padding: 1px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 13px;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
margin-top: -10px;
}
.popover.right {
margin-left: 10px;
}
.popover.bottom {
margin-top: 10px;
}
.popover.left {
margin-left: -10px;
}
.popover-title {
margin: 0;
padding: 8px 14px;
font-size: 13px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 2px 2px 0 0;
}
.popover-content {
padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover > .arrow {
border-width: 11px;
}
.popover > .arrow:after {
border-width: 10px;
content: "";
}
.popover.top > .arrow {
left: 50%;
margin-left: -11px;
border-bottom-width: 0;
border-top-color: #999999;
border-top-color: rgba(0, 0, 0, 0.25);
bottom: -11px;
}
.popover.top > .arrow:after {
content: " ";
bottom: 1px;
margin-left: -10px;
border-bottom-width: 0;
border-top-color: #fff;
}
.popover.right > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
border-left-width: 0;
border-right-color: #999999;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
content: " ";
left: 1px;
bottom: -10px;
border-left-width: 0;
border-right-color: #fff;
}
.popover.bottom > .arrow {
left: 50%;
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999999;
border-bottom-color: rgba(0, 0, 0, 0.25);
top: -11px;
}
.popover.bottom > .arrow:after {
content: " ";
top: 1px;
margin-left: -10px;
border-top-width: 0;
border-bottom-color: #fff;
}
.popover.left > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
border-right-width: 0;
border-left-color: #999999;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: #fff;
bottom: -10px;
}
.carousel {
position: relative;
}
.carousel-inner {
position: relative;
overflow: hidden;
width: 100%;
}
.carousel-inner > .item {
display: none;
position: relative;
-webkit-transition: 0.6s ease-in-out left;
-o-transition: 0.6s ease-in-out left;
transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-inner > .item {
-webkit-transition: -webkit-transform 0.6s ease-in-out;
-moz-transition: -moz-transform 0.6s ease-in-out;
-o-transition: -o-transform 0.6s ease-in-out;
transition: transform 0.6s ease-in-out;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
left: 0;
}
.carousel-inner > .item.prev,
.carousel-inner > .item.active.left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
left: 0;
}
.carousel-inner > .item.next.left,
.carousel-inner > .item.prev.right,
.carousel-inner > .item.active {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
left: 0;
}
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
display: block;
}
.carousel-inner > .active {
left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
position: absolute;
top: 0;
width: 100%;
}
.carousel-inner > .next {
left: 100%;
}
.carousel-inner > .prev {
left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
left: 0;
}
.carousel-inner > .active.left {
left: -100%;
}
.carousel-inner > .active.right {
left: 100%;
}
.carousel-control {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 15%;
opacity: 0.5;
filter: alpha(opacity=50);
font-size: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
left: auto;
right: 0;
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
outline: 0;
color: #fff;
text-decoration: none;
opacity: 0.9;
filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
position: absolute;
top: 50%;
margin-top: -10px;
z-index: 5;
display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
left: 50%;
margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
right: 50%;
margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 20px;
height: 20px;
line-height: 1;
font-family: serif;
}
.carousel-control .icon-prev:before {
content: '\2039';
}
.carousel-control .icon-next:before {
content: '\203a';
}
.carousel-indicators {
position: absolute;
bottom: 10px;
left: 50%;
z-index: 15;
width: 60%;
margin-left: -30%;
padding-left: 0;
list-style: none;
text-align: center;
}
.carousel-indicators li {
display: inline-block;
width: 10px;
height: 10px;
margin: 1px;
text-indent: -999px;
border: 1px solid #fff;
border-radius: 10px;
cursor: pointer;
background-color: #000 \9;
background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
margin: 0;
width: 12px;
height: 12px;
background-color: #fff;
}
.carousel-caption {
position: absolute;
left: 15%;
right: 15%;
bottom: 20px;
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
text-shadow: none;
}
@media screen and (min-width: 768px) {
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 30px;
height: 30px;
margin-top: -10px;
font-size: 30px;
}
.carousel-control .glyphicon-chevron-left,
.carousel-control .icon-prev {
margin-left: -10px;
}
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-next {
margin-right: -10px;
}
.carousel-caption {
left: 20%;
right: 20%;
padding-bottom: 30px;
}
.carousel-indicators {
bottom: 20px;
}
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
content: " ";
display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons: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;
}
.affix {
position: fixed;
}
@-ms-viewport {
width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
display: none !important;
}
@media (max-width: 767px) {
.visible-xs {
display: block !important;
}
table.visible-xs {
display: table !important;
}
tr.visible-xs {
display: table-row !important;
}
th.visible-xs,
td.visible-xs {
display: table-cell !important;
}
}
@media (max-width: 767px) {
.visible-xs-block {
display: block !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline {
display: inline !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline-block {
display: inline-block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
display: block !important;
}
table.visible-sm {
display: table !important;
}
tr.visible-sm {
display: table-row !important;
}
th.visible-sm,
td.visible-sm {
display: table-cell !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
display: block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline {
display: inline !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline-block {
display: inline-block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
display: block !important;
}
table.visible-md {
display: table !important;
}
tr.visible-md {
display: table-row !important;
}
th.visible-md,
td.visible-md {
display: table-cell !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-block {
display: block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline {
display: inline !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline-block {
display: inline-block !important;
}
}
@media (min-width: 1200px) {
.visible-lg {
display: block !important;
}
table.visible-lg {
display: table !important;
}
tr.visible-lg {
display: table-row !important;
}
th.visible-lg,
td.visible-lg {
display: table-cell !important;
}
}
@media (min-width: 1200px) {
.visible-lg-block {
display: block !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline {
display: inline !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline-block {
display: inline-block !important;
}
}
@media (max-width: 767px) {
.hidden-xs {
display: none !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
display: none !important;
}
}
@media (min-width: 1200px) {
.hidden-lg {
display: none !important;
}
}
.visible-print {
display: none !important;
}
@media print {
.visible-print {
display: block !important;
}
table.visible-print {
display: table !important;
}
tr.visible-print {
display: table-row !important;
}
th.visible-print,
td.visible-print {
display: table-cell !important;
}
}
.visible-print-block {
display: none !important;
}
@media print {
.visible-print-block {
display: block !important;
}
}
.visible-print-inline {
display: none !important;
}
@media print {
.visible-print-inline {
display: inline !important;
}
}
.visible-print-inline-block {
display: none !important;
}
@media print {
.visible-print-inline-block {
display: inline-block !important;
}
}
@media print {
.hidden-print {
display: none !important;
}
}
/*!
*
* Font Awesome
*
*/
/*!
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-fw {
width: 1.28571429em;
text-align: center;
}
.fa-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.fa-ul > li {
position: relative;
}
.fa-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eee;
border-radius: .1em;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.fa.pull-left {
margin-right: .3em;
}
.fa.pull-right {
margin-left: .3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.fa-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.fa-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
filter: none;
}
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-inverse {
color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:before {
content: "\f072";
}
.fa-calendar:before {
content: "\f073";
}
.fa-random:before {
content: "\f074";
}
.fa-comment:before {
content: "\f075";
}
.fa-magnet:before {
content: "\f076";
}
.fa-chevron-up:before {
content: "\f077";
}
.fa-chevron-down:before {
content: "\f078";
}
.fa-retweet:before {
content: "\f079";
}
.fa-shopping-cart:before {
content: "\f07a";
}
.fa-folder:before {
content: "\f07b";
}
.fa-folder-open:before {
content: "\f07c";
}
.fa-arrows-v:before {
content: "\f07d";
}
.fa-arrows-h:before {
content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
content: "\f080";
}
.fa-twitter-square:before {
content: "\f081";
}
.fa-facebook-square:before {
content: "\f082";
}
.fa-camera-retro:before {
content: "\f083";
}
.fa-key:before {
content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
content: "\f085";
}
.fa-comments:before {
content: "\f086";
}
.fa-thumbs-o-up:before {
content: "\f087";
}
.fa-thumbs-o-down:before {
content: "\f088";
}
.fa-star-half:before {
content: "\f089";
}
.fa-heart-o:before {
content: "\f08a";
}
.fa-sign-out:before {
content: "\f08b";
}
.fa-linkedin-square:before {
content: "\f08c";
}
.fa-thumb-tack:before {
content: "\f08d";
}
.fa-external-link:before {
content: "\f08e";
}
.fa-sign-in:before {
content: "\f090";
}
.fa-trophy:before {
content: "\f091";
}
.fa-github-square:before {
content: "\f092";
}
.fa-upload:before {
content: "\f093";
}
.fa-lemon-o:before {
content: "\f094";
}
.fa-phone:before {
content: "\f095";
}
.fa-square-o:before {
content: "\f096";
}
.fa-bookmark-o:before {
content: "\f097";
}
.fa-phone-square:before {
content: "\f098";
}
.fa-twitter:before {
content: "\f099";
}
.fa-facebook:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.fa-rss:before {
content: "\f09e";
}
.fa-hdd-o:before {
content: "\f0a0";
}
.fa-bullhorn:before {
content: "\f0a1";
}
.fa-bell:before {
content: "\f0f3";
}
.fa-certificate:before {
content: "\f0a3";
}
.fa-hand-o-right:before {
content: "\f0a4";
}
.fa-hand-o-left:before {
content: "\f0a5";
}
.fa-hand-o-up:before {
content: "\f0a6";
}
.fa-hand-o-down:before {
content: "\f0a7";
}
.fa-arrow-circle-left:before {
content: "\f0a8";
}
.fa-arrow-circle-right:before {
content: "\f0a9";
}
.fa-arrow-circle-up:before {
content: "\f0aa";
}
.fa-arrow-circle-down:before {
content: "\f0ab";
}
.fa-globe:before {
content: "\f0ac";
}
.fa-wrench:before {
content: "\f0ad";
}
.fa-tasks:before {
content: "\f0ae";
}
.fa-filter:before {
content: "\f0b0";
}
.fa-briefcase:before {
content: "\f0b1";
}
.fa-arrows-alt:before {
content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
content: "\f0c1";
}
.fa-cloud:before {
content: "\f0c2";
}
.fa-flask:before {
content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
content: "\f0c5";
}
.fa-paperclip:before {
content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
content: "\f0c7";
}
.fa-square:before {
content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
content: "\f0c9";
}
.fa-list-ul:before {
content: "\f0ca";
}
.fa-list-ol:before {
content: "\f0cb";
}
.fa-strikethrough:before {
content: "\f0cc";
}
.fa-underline:before {
content: "\f0cd";
}
.fa-table:before {
content: "\f0ce";
}
.fa-magic:before {
content: "\f0d0";
}
.fa-truck:before {
content: "\f0d1";
}
.fa-pinterest:before {
content: "\f0d2";
}
.fa-pinterest-square:before {
content: "\f0d3";
}
.fa-google-plus-square:before {
content: "\f0d4";
}
.fa-google-plus:before {
content: "\f0d5";
}
.fa-money:before {
content: "\f0d6";
}
.fa-caret-down:before {
content: "\f0d7";
}
.fa-caret-up:before {
content: "\f0d8";
}
.fa-caret-left:before {
content: "\f0d9";
}
.fa-caret-right:before {
content: "\f0da";
}
.fa-columns:before {
content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
content: "\f0de";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-linkedin:before {
content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
content: "\f0e4";
}
.fa-comment-o:before {
content: "\f0e5";
}
.fa-comments-o:before {
content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
content: "\f0e7";
}
.fa-sitemap:before {
content: "\f0e8";
}
.fa-umbrella:before {
content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
content: "\f0ea";
}
.fa-lightbulb-o:before {
content: "\f0eb";
}
.fa-exchange:before {
content: "\f0ec";
}
.fa-cloud-download:before {
content: "\f0ed";
}
.fa-cloud-upload:before {
content: "\f0ee";
}
.fa-user-md:before {
content: "\f0f0";
}
.fa-stethoscope:before {
content: "\f0f1";
}
.fa-suitcase:before {
content: "\f0f2";
}
.fa-bell-o:before {
content: "\f0a2";
}
.fa-coffee:before {
content: "\f0f4";
}
.fa-cutlery:before {
content: "\f0f5";
}
.fa-file-text-o:before {
content: "\f0f6";
}
.fa-building-o:before {
content: "\f0f7";
}
.fa-hospital-o:before {
content: "\f0f8";
}
.fa-ambulance:before {
content: "\f0f9";
}
.fa-medkit:before {
content: "\f0fa";
}
.fa-fighter-jet:before {
content: "\f0fb";
}
.fa-beer:before {
content: "\f0fc";
}
.fa-h-square:before {
content: "\f0fd";
}
.fa-plus-square:before {
content: "\f0fe";
}
.fa-angle-double-left:before {
content: "\f100";
}
.fa-angle-double-right:before {
content: "\f101";
}
.fa-angle-double-up:before {
content: "\f102";
}
.fa-angle-double-down:before {
content: "\f103";
}
.fa-angle-left:before {
content: "\f104";
}
.fa-angle-right:before {
content: "\f105";
}
.fa-angle-up:before {
content: "\f106";
}
.fa-angle-down:before {
content: "\f107";
}
.fa-desktop:before {
content: "\f108";
}
.fa-laptop:before {
content: "\f109";
}
.fa-tablet:before {
content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
content: "\f10b";
}
.fa-circle-o:before {
content: "\f10c";
}
.fa-quote-left:before {
content: "\f10d";
}
.fa-quote-right:before {
content: "\f10e";
}
.fa-spinner:before {
content: "\f110";
}
.fa-circle:before {
content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
content: "\f112";
}
.fa-github-alt:before {
content: "\f113";
}
.fa-folder-o:before {
content: "\f114";
}
.fa-folder-open-o:before {
content: "\f115";
}
.fa-smile-o:before {
content: "\f118";
}
.fa-frown-o:before {
content: "\f119";
}
.fa-meh-o:before {
content: "\f11a";
}
.fa-gamepad:before {
content: "\f11b";
}
.fa-keyboard-o:before {
content: "\f11c";
}
.fa-flag-o:before {
content: "\f11d";
}
.fa-flag-checkered:before {
content: "\f11e";
}
.fa-terminal:before {
content: "\f120";
}
.fa-code:before {
content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
content: "\f123";
}
.fa-location-arrow:before {
content: "\f124";
}
.fa-crop:before {
content: "\f125";
}
.fa-code-fork:before {
content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
content: "\f127";
}
.fa-question:before {
content: "\f128";
}
.fa-info:before {
content: "\f129";
}
.fa-exclamation:before {
content: "\f12a";
}
.fa-superscript:before {
content: "\f12b";
}
.fa-subscript:before {
content: "\f12c";
}
.fa-eraser:before {
content: "\f12d";
}
.fa-puzzle-piece:before {
content: "\f12e";
}
.fa-microphone:before {
content: "\f130";
}
.fa-microphone-slash:before {
content: "\f131";
}
.fa-shield:before {
content: "\f132";
}
.fa-calendar-o:before {
content: "\f133";
}
.fa-fire-extinguisher:before {
content: "\f134";
}
.fa-rocket:before {
content: "\f135";
}
.fa-maxcdn:before {
content: "\f136";
}
.fa-chevron-circle-left:before {
content: "\f137";
}
.fa-chevron-circle-right:before {
content: "\f138";
}
.fa-chevron-circle-up:before {
content: "\f139";
}
.fa-chevron-circle-down:before {
content: "\f13a";
}
.fa-html5:before {
content: "\f13b";
}
.fa-css3:before {
content: "\f13c";
}
.fa-anchor:before {
content: "\f13d";
}
.fa-unlock-alt:before {
content: "\f13e";
}
.fa-bullseye:before {
content: "\f140";
}
.fa-ellipsis-h:before {
content: "\f141";
}
.fa-ellipsis-v:before {
content: "\f142";
}
.fa-rss-square:before {
content: "\f143";
}
.fa-play-circle:before {
content: "\f144";
}
.fa-ticket:before {
content: "\f145";
}
.fa-minus-square:before {
content: "\f146";
}
.fa-minus-square-o:before {
content: "\f147";
}
.fa-level-up:before {
content: "\f148";
}
.fa-level-down:before {
content: "\f149";
}
.fa-check-square:before {
content: "\f14a";
}
.fa-pencil-square:before {
content: "\f14b";
}
.fa-external-link-square:before {
content: "\f14c";
}
.fa-share-square:before {
content: "\f14d";
}
.fa-compass:before {
content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
content: "\f153";
}
.fa-gbp:before {
content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
content: "\f158";
}
.fa-won:before,
.fa-krw:before {
content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
content: "\f15a";
}
.fa-file:before {
content: "\f15b";
}
.fa-file-text:before {
content: "\f15c";
}
.fa-sort-alpha-asc:before {
content: "\f15d";
}
.fa-sort-alpha-desc:before {
content: "\f15e";
}
.fa-sort-amount-asc:before {
content: "\f160";
}
.fa-sort-amount-desc:before {
content: "\f161";
}
.fa-sort-numeric-asc:before {
content: "\f162";
}
.fa-sort-numeric-desc:before {
content: "\f163";
}
.fa-thumbs-up:before {
content: "\f164";
}
.fa-thumbs-down:before {
content: "\f165";
}
.fa-youtube-square:before {
content: "\f166";
}
.fa-youtube:before {
content: "\f167";
}
.fa-xing:before {
content: "\f168";
}
.fa-xing-square:before {
content: "\f169";
}
.fa-youtube-play:before {
content: "\f16a";
}
.fa-dropbox:before {
content: "\f16b";
}
.fa-stack-overflow:before {
content: "\f16c";
}
.fa-instagram:before {
content: "\f16d";
}
.fa-flickr:before {
content: "\f16e";
}
.fa-adn:before {
content: "\f170";
}
.fa-bitbucket:before {
content: "\f171";
}
.fa-bitbucket-square:before {
content: "\f172";
}
.fa-tumblr:before {
content: "\f173";
}
.fa-tumblr-square:before {
content: "\f174";
}
.fa-long-arrow-down:before {
content: "\f175";
}
.fa-long-arrow-up:before {
content: "\f176";
}
.fa-long-arrow-left:before {
content: "\f177";
}
.fa-long-arrow-right:before {
content: "\f178";
}
.fa-apple:before {
content: "\f179";
}
.fa-windows:before {
content: "\f17a";
}
.fa-android:before {
content: "\f17b";
}
.fa-linux:before {
content: "\f17c";
}
.fa-dribbble:before {
content: "\f17d";
}
.fa-skype:before {
content: "\f17e";
}
.fa-foursquare:before {
content: "\f180";
}
.fa-trello:before {
content: "\f181";
}
.fa-female:before {
content: "\f182";
}
.fa-male:before {
content: "\f183";
}
.fa-gittip:before {
content: "\f184";
}
.fa-sun-o:before {
content: "\f185";
}
.fa-moon-o:before {
content: "\f186";
}
.fa-archive:before {
content: "\f187";
}
.fa-bug:before {
content: "\f188";
}
.fa-vk:before {
content: "\f189";
}
.fa-weibo:before {
content: "\f18a";
}
.fa-renren:before {
content: "\f18b";
}
.fa-pagelines:before {
content: "\f18c";
}
.fa-stack-exchange:before {
content: "\f18d";
}
.fa-arrow-circle-o-right:before {
content: "\f18e";
}
.fa-arrow-circle-o-left:before {
content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
content: "\f191";
}
.fa-dot-circle-o:before {
content: "\f192";
}
.fa-wheelchair:before {
content: "\f193";
}
.fa-vimeo-square:before {
content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
content: "\f195";
}
.fa-plus-square-o:before {
content: "\f196";
}
.fa-space-shuttle:before {
content: "\f197";
}
.fa-slack:before {
content: "\f198";
}
.fa-envelope-square:before {
content: "\f199";
}
.fa-wordpress:before {
content: "\f19a";
}
.fa-openid:before {
content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
content: "\f19d";
}
.fa-yahoo:before {
content: "\f19e";
}
.fa-google:before {
content: "\f1a0";
}
.fa-reddit:before {
content: "\f1a1";
}
.fa-reddit-square:before {
content: "\f1a2";
}
.fa-stumbleupon-circle:before {
content: "\f1a3";
}
.fa-stumbleupon:before {
content: "\f1a4";
}
.fa-delicious:before {
content: "\f1a5";
}
.fa-digg:before {
content: "\f1a6";
}
.fa-pied-piper:before {
content: "\f1a7";
}
.fa-pied-piper-alt:before {
content: "\f1a8";
}
.fa-drupal:before {
content: "\f1a9";
}
.fa-joomla:before {
content: "\f1aa";
}
.fa-language:before {
content: "\f1ab";
}
.fa-fax:before {
content: "\f1ac";
}
.fa-building:before {
content: "\f1ad";
}
.fa-child:before {
content: "\f1ae";
}
.fa-paw:before {
content: "\f1b0";
}
.fa-spoon:before {
content: "\f1b1";
}
.fa-cube:before {
content: "\f1b2";
}
.fa-cubes:before {
content: "\f1b3";
}
.fa-behance:before {
content: "\f1b4";
}
.fa-behance-square:before {
content: "\f1b5";
}
.fa-steam:before {
content: "\f1b6";
}
.fa-steam-square:before {
content: "\f1b7";
}
.fa-recycle:before {
content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
content: "\f1ba";
}
.fa-tree:before {
content: "\f1bb";
}
.fa-spotify:before {
content: "\f1bc";
}
.fa-deviantart:before {
content: "\f1bd";
}
.fa-soundcloud:before {
content: "\f1be";
}
.fa-database:before {
content: "\f1c0";
}
.fa-file-pdf-o:before {
content: "\f1c1";
}
.fa-file-word-o:before {
content: "\f1c2";
}
.fa-file-excel-o:before {
content: "\f1c3";
}
.fa-file-powerpoint-o:before {
content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
content: "\f1c8";
}
.fa-file-code-o:before {
content: "\f1c9";
}
.fa-vine:before {
content: "\f1ca";
}
.fa-codepen:before {
content: "\f1cb";
}
.fa-jsfiddle:before {
content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
content: "\f1cd";
}
.fa-circle-o-notch:before {
content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.fa-hacker-news:before {
content: "\f1d4";
}
.fa-tencent-weibo:before {
content: "\f1d5";
}
.fa-qq:before {
content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
content: "\f1d9";
}
.fa-history:before {
content: "\f1da";
}
.fa-circle-thin:before {
content: "\f1db";
}
.fa-header:before {
content: "\f1dc";
}
.fa-paragraph:before {
content: "\f1dd";
}
.fa-sliders:before {
content: "\f1de";
}
.fa-share-alt:before {
content: "\f1e0";
}
.fa-share-alt-square:before {
content: "\f1e1";
}
.fa-bomb:before {
content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
content: "\f1e3";
}
.fa-tty:before {
content: "\f1e4";
}
.fa-binoculars:before {
content: "\f1e5";
}
.fa-plug:before {
content: "\f1e6";
}
.fa-slideshare:before {
content: "\f1e7";
}
.fa-twitch:before {
content: "\f1e8";
}
.fa-yelp:before {
content: "\f1e9";
}
.fa-newspaper-o:before {
content: "\f1ea";
}
.fa-wifi:before {
content: "\f1eb";
}
.fa-calculator:before {
content: "\f1ec";
}
.fa-paypal:before {
content: "\f1ed";
}
.fa-google-wallet:before {
content: "\f1ee";
}
.fa-cc-visa:before {
content: "\f1f0";
}
.fa-cc-mastercard:before {
content: "\f1f1";
}
.fa-cc-discover:before {
content: "\f1f2";
}
.fa-cc-amex:before {
content: "\f1f3";
}
.fa-cc-paypal:before {
content: "\f1f4";
}
.fa-cc-stripe:before {
content: "\f1f5";
}
.fa-bell-slash:before {
content: "\f1f6";
}
.fa-bell-slash-o:before {
content: "\f1f7";
}
.fa-trash:before {
content: "\f1f8";
}
.fa-copyright:before {
content: "\f1f9";
}
.fa-at:before {
content: "\f1fa";
}
.fa-eyedropper:before {
content: "\f1fb";
}
.fa-paint-brush:before {
content: "\f1fc";
}
.fa-birthday-cake:before {
content: "\f1fd";
}
.fa-area-chart:before {
content: "\f1fe";
}
.fa-pie-chart:before {
content: "\f200";
}
.fa-line-chart:before {
content: "\f201";
}
.fa-lastfm:before {
content: "\f202";
}
.fa-lastfm-square:before {
content: "\f203";
}
.fa-toggle-off:before {
content: "\f204";
}
.fa-toggle-on:before {
content: "\f205";
}
.fa-bicycle:before {
content: "\f206";
}
.fa-bus:before {
content: "\f207";
}
.fa-ioxhost:before {
content: "\f208";
}
.fa-angellist:before {
content: "\f209";
}
.fa-cc:before {
content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
content: "\f20b";
}
.fa-meanpath:before {
content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
code {
color: #000;
}
pre {
font-size: inherit;
line-height: inherit;
}
label {
font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.corner-all {
border-radius: 2px;
}
.no-padding {
padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer. It allows the usage of flexible box
model layouts accross multiple browsers, including older browsers. The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below). Browsers that are known to implement this
new spec completely include:
Firefox 28.0+
Chrome 29.0+
Internet Explorer 11+
Opera 17.0+
Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
.hbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.vbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
.vbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
/* Old browsers */
-webkit-box-direction: reverse;
-moz-box-direction: reverse;
box-direction: reverse;
/* Modern browsers */
flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
/* Old browsers */
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
/* Old browsers */
-webkit-box-flex: 2;
-moz-box-flex: 2;
box-flex: 2;
/* Modern browsers */
flex: 2;
}
.box-group1 {
/* Deprecated */
-webkit-box-flex-group: 1;
-moz-box-flex-group: 1;
box-flex-group: 1;
}
.box-group2 {
/* Deprecated */
-webkit-box-flex-group: 2;
-moz-box-flex-group: 2;
box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
/* Old browsers */
-webkit-box-pack: start;
-moz-box-pack: start;
box-pack: start;
/* Modern browsers */
justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
/* Old browsers */
-webkit-box-pack: center;
-moz-box-pack: center;
box-pack: center;
/* Modern browsers */
justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
/* Old browsers */
-webkit-box-pack: baseline;
-moz-box-pack: baseline;
box-pack: baseline;
/* Modern browsers */
justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
/* Old browsers */
-webkit-box-pack: stretch;
-moz-box-pack: stretch;
box-pack: stretch;
/* Modern browsers */
justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
/* Old browsers */
-webkit-box-align: start;
-moz-box-align: start;
box-align: start;
/* Modern browsers */
align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
/* Old browsers */
-webkit-box-align: end;
-moz-box-align: end;
box-align: end;
/* Modern browsers */
align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
/* Old browsers */
-webkit-box-align: center;
-moz-box-align: center;
box-align: center;
/* Modern browsers */
align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
/* Old browsers */
-webkit-box-align: baseline;
-moz-box-align: baseline;
box-align: baseline;
/* Modern browsers */
align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
/* Old browsers */
-webkit-box-align: stretch;
-moz-box-align: stretch;
box-align: stretch;
/* Modern browsers */
align-items: stretch;
}
div.error {
margin: 2em;
text-align: center;
}
div.error > h1 {
font-size: 500%;
line-height: normal;
}
div.error > p {
font-size: 200%;
line-height: normal;
}
div.traceback-wrapper {
text-align: left;
max-width: 800px;
margin: auto;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
body {
background-color: #fff;
/* This makes sure that the body covers the entire window and needs to
be in a different element than the display: box in wrapper below */
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
overflow: visible;
}
body > #header {
/* Initially hidden to prevent FLOUC */
display: none;
background-color: #fff;
/* Display over codemirror */
position: relative;
z-index: 100;
}
body > #header #header-container {
padding-bottom: 5px;
padding-top: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
body > #header .header-bar {
width: 100%;
height: 1px;
background: #e7e7e7;
margin-bottom: -1px;
}
@media print {
body > #header {
display: none !important;
}
}
#header-spacer {
width: 100%;
visibility: hidden;
}
@media print {
#header-spacer {
display: none;
}
}
#ipython_notebook {
padding-left: 0px;
padding-top: 1px;
padding-bottom: 1px;
}
@media (max-width: 991px) {
#ipython_notebook {
margin-left: 10px;
}
}
[dir="rtl"] #ipython_notebook {
float: right !important;
}
#noscript {
width: auto;
padding-top: 16px;
padding-bottom: 16px;
text-align: center;
font-size: 22px;
color: red;
font-weight: bold;
}
#ipython_notebook img {
height: 28px;
}
#site {
width: 100%;
display: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
overflow: auto;
}
@media print {
#site {
height: auto !important;
}
}
/* Smaller buttons */
.ui-button .ui-button-text {
padding: 0.2em 0.8em;
font-size: 77%;
}
input.ui-button {
padding: 0.3em 0.9em;
}
span#login_widget {
float: right;
}
span#login_widget > .button,
#logout {
color: #333;
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
color: #fff;
background-color: #333;
}
.nav-header {
text-transform: none;
}
#header > span {
margin-top: 10px;
}
.modal_stretch .modal-dialog {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
max-height: calc(100vh - 200px);
overflow: auto;
flex: 1;
}
@media (min-width: 768px) {
.modal .modal-dialog {
width: 700px;
}
}
@media (min-width: 768px) {
select.form-control {
margin-left: 12px;
margin-right: 12px;
}
}
/*!
*
* IPython auth
*
*/
.center-nav {
display: inline-block;
margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
background-color: none;
display: inline;
}
.alternate_upload.form {
padding: 0;
margin: 0;
}
.alternate_upload input.fileinput {
text-align: center;
vertical-align: middle;
display: inline;
opacity: 0;
z-index: 2;
width: 12ex;
margin-right: -12ex;
}
.alternate_upload .btn-upload {
height: 22px;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
[dir="rtl"] #tabs li {
float: right;
}
ul#tabs {
margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
margin-right: 0px;
}
ul#tabs a {
padding-top: 6px;
padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
text-decoration: none;
}
ul.breadcrumb i.icon-home {
font-size: 16px;
margin-right: 4px;
}
ul.breadcrumb span {
color: #5e5e5e;
}
.list_toolbar {
padding: 4px 0 4px 0;
vertical-align: middle;
}
.list_toolbar .tree-buttons {
padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
padding-top: 1px;
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
float: right !important;
}
.dynamic-buttons {
padding-top: 3px;
display: inline-block;
}
.list_toolbar [class*="span"] {
min-height: 24px;
}
.list_header {
font-weight: bold;
background-color: #EEE;
}
.list_placeholder {
font-weight: bold;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
}
.list_container {
margin-top: 4px;
margin-bottom: 20px;
border: 1px solid #ddd;
border-radius: 2px;
}
.list_container > div {
border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
background-color: red;
}
.list_container > div:last-child {
border: none;
}
.list_item:hover .list_item {
background-color: #ddd;
}
.list_item a {
text-decoration: none;
}
.list_item:hover {
background-color: #fafafa;
}
.list_header > div,
.list_item > div {
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
.list_header > div input,
.list_item > div input {
margin-right: 7px;
margin-left: 14px;
vertical-align: baseline;
line-height: 22px;
position: relative;
top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
margin-left: -1px;
vertical-align: baseline;
line-height: 22px;
}
.new-file input[type=checkbox] {
visibility: hidden;
}
.item_name {
line-height: 22px;
height: 24px;
}
.item_icon {
font-size: 14px;
color: #5e5e5e;
margin-right: 7px;
margin-left: 7px;
line-height: 22px;
vertical-align: baseline;
}
.item_buttons {
line-height: 1em;
margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
margin-left: 5px;
}
.item_buttons .btn {
min-width: 13ex;
}
.item_buttons .running-indicator {
padding-top: 4px;
color: #5cb85c;
}
.item_buttons .kernel-name {
padding-top: 4px;
color: #5bc0de;
margin-right: 7px;
float: left;
}
.toolbar_info {
height: 24px;
line-height: 24px;
}
.list_item input:not([type=checkbox]) {
padding-top: 3px;
padding-bottom: 3px;
height: 22px;
line-height: 14px;
margin: 0px;
}
.highlight_text {
color: blue;
}
#project_name {
display: inline-block;
padding-left: 7px;
margin-left: -2px;
}
#project_name > .breadcrumb {
padding: 0px;
margin-bottom: 0px;
background-color: transparent;
font-weight: bold;
}
#tree-selector {
padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
float: right;
}
#button-select-all {
min-width: 50px;
}
#select-all {
margin-left: 7px;
margin-right: 2px;
}
.menu_icon {
margin-right: 2px;
}
.tab-content .row {
margin-left: 0px;
margin-right: 0px;
}
.folder_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f114";
}
.folder_icon:before.pull-left {
margin-right: .3em;
}
.folder_icon:before.pull-right {
margin-left: .3em;
}
.notebook_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f02d";
position: relative;
top: -1px;
}
.notebook_icon:before.pull-left {
margin-right: .3em;
}
.notebook_icon:before.pull-right {
margin-left: .3em;
}
.running_notebook_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f02d";
position: relative;
top: -1px;
color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
margin-left: .3em;
}
.file_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f016";
position: relative;
top: -2px;
}
.file_icon:before.pull-left {
margin-right: .3em;
}
.file_icon:before.pull-right {
margin-left: .3em;
}
#notebook_toolbar .pull-right {
padding-top: 0px;
margin-right: -1px;
}
ul#new-menu {
left: auto;
right: 0;
}
[dir="rtl"] #new-menu {
text-align: right;
}
.kernel-menu-icon {
padding-right: 12px;
width: 24px;
content: "\f096";
}
.kernel-menu-icon:before {
content: "\f096";
}
.kernel-menu-icon-current:before {
content: "\f00c";
}
#tab_content {
padding-top: 20px;
}
#running .panel-group .panel {
margin-top: 3px;
margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
background-color: #EEE;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
text-decoration: none;
}
#running .panel-group .panel .panel-body {
padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
margin-top: 0px;
margin-bottom: 0px;
border: 0px;
border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
float: right !important;
}
.delete-button {
display: none;
}
.duplicate-button {
display: none;
}
.rename-button {
display: none;
}
.shutdown-button {
display: none;
}
.dynamic-instructions {
display: inline-block;
padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
padding: 0px 5px;
}
.selected-keymap i.fa:before {
content: "\f00c";
}
#mode-menu {
overflow: auto;
max-height: 20em;
}
.edit_app #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
/* Use a negative 1 bottom margin, so the border overlaps the border of the
header */
margin-bottom: -1px;
}
.dirty-indicator {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator.pull-left {
margin-right: .3em;
}
.dirty-indicator.pull-right {
margin-left: .3em;
}
.dirty-indicator-dirty {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator-dirty.pull-left {
margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator-clean.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
margin-left: .3em;
}
#filename {
font-size: 16pt;
display: table;
padding: 0px 5px;
}
#current-mode {
padding-left: 5px;
padding-right: 5px;
}
#texteditor-backdrop {
padding-top: 20px;
padding-bottom: 20px;
}
@media not print {
#texteditor-backdrop {
background-color: #EEE;
}
}
@media print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container {
padding: 0px;
background-color: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
border-left-width: 1px;
padding-left: 5px;
background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
border-left-color: #90CAF9;
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected {
border-color: #ababab;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
div.cell.selected {
border-color: transparent;
}
}
div.cell.selected.jupyter-soft-selected {
border-left-width: 0;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
padding: 0.4em;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
/* .CodeMirror-lines */
padding: 0;
border: 0;
border-radius: 0;
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area .rendered_html table {
margin-left: 0;
margin-right: 0;
}
div.output_area .rendered_html img {
margin-left: 0;
margin-right: 0;
}
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html em {
font-style: italic;
}
.rendered_html strong {
font-weight: bold;
}
.rendered_html u {
text-decoration: underline;
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1 {
font-size: 185.7%;
margin: 1.08em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h2 {
font-size: 157.1%;
margin: 1.27em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h3 {
font-size: 128.6%;
margin: 1.55em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h4 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h5 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h6 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul {
list-style: disc;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ul ul {
list-style: square;
margin: 0em 2em;
}
.rendered_html ul ul ul {
list-style: circle;
margin: 0em 2em;
}
.rendered_html ol {
list-style: decimal;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ol ol {
list-style: upper-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol {
list-style: lower-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol ol {
list-style: lower-roman;
margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
list-style: decimal;
margin: 0em 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html hr {
color: black;
background-color: black;
}
.rendered_html pre {
margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
border: 0;
background-color: #fff;
color: #000;
font-size: 100%;
padding: 0px;
}
.rendered_html blockquote {
margin: 1em 2em;
}
.rendered_html table {
margin-left: auto;
margin-right: auto;
border: 1px solid black;
border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
border: 1px solid black;
border-collapse: collapse;
margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
text-align: left;
vertical-align: middle;
padding: 4px;
}
.rendered_html th {
font-weight: bold;
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html p {
text-align: left;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html img {
display: block;
margin-left: auto;
margin-right: auto;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
max-width: 100%;
height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
max-width: none;
}
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered .rendered_html {
overflow-x: auto;
overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
.notebook_app {
padding-left: 0px;
padding-right: 0px;
}
}
#ipython-main-app {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook_panel {
margin: 0px;
padding: 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook {
font-size: 14px;
line-height: 20px;
overflow-y: hidden;
overflow-x: auto;
width: 100%;
/* This spaces the page away from the edge of the notebook area */
padding-top: 20px;
margin: 0px;
outline: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
min-height: 100%;
}
@media not print {
#notebook-container {
padding: 15px;
background-color: #fff;
min-height: 0;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
@media print {
#notebook-container {
width: 100%;
}
}
div.ui-widget-content {
border: 1px solid #ababab;
outline: none;
}
pre.dialog {
background-color: #f7f7f7;
border: 1px solid #ddd;
border-radius: 2px;
padding: 0.4em;
padding-left: 2em;
}
p.dialog {
padding: 0.2em;
}
/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
*/
pre,
code,
kbd,
samp {
white-space: pre-wrap;
}
#fonttest {
font-family: monospace;
}
p {
margin-bottom: 0;
}
.end_space {
min-height: 100px;
transition: height .2s ease;
}
.notebook_app > #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
.notebook_app {
background-color: #EEE;
}
}
kbd {
border-style: solid;
border-width: 1px;
box-shadow: none;
margin: 2px;
padding-left: 2px;
padding-right: 2px;
padding-top: 1px;
padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
border: thin solid #CFCFCF;
border-bottom: none;
background: #EEE;
border-radius: 2px 2px 0px 0px;
width: 100%;
height: 29px;
padding-right: 4px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
display: -webkit-flex;
}
@media print {
.celltoolbar {
display: none;
}
}
.ctb_hideshow {
display: none;
vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
border-top-right-radius: 0px;
border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
border: 1px solid #cfcfcf;
}
.celltoolbar {
font-size: 87%;
padding-top: 3px;
}
.celltoolbar select {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-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;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
width: inherit;
font-size: inherit;
height: 22px;
padding: 0px;
display: inline-block;
}
.celltoolbar select: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);
}
.celltoolbar select::-moz-placeholder {
color: #999;
opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
color: #999;
}
.celltoolbar select::-ms-expand {
border: 0;
background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
background-color: #eeeeee;
opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
cursor: not-allowed;
}
textarea.celltoolbar select {
height: auto;
}
select.celltoolbar select {
height: 30px;
line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
height: auto;
}
.celltoolbar label {
margin-left: 5px;
margin-right: 5px;
}
.completions {
position: absolute;
z-index: 110;
overflow: hidden;
border: 1px solid #ababab;
border-radius: 2px;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
line-height: 1;
}
.completions select {
background: white;
outline: none;
border: none;
padding: 0px;
margin: 0px;
overflow: auto;
font-family: monospace;
font-size: 110%;
color: #000;
width: auto;
}
.completions select option.context {
color: #286090;
}
#kernel_logo_widget {
float: right !important;
float: right;
}
#kernel_logo_widget .current_kernel_logo {
display: none;
margin-top: -1px;
margin-bottom: -1px;
width: 32px;
height: 32px;
}
#menubar {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
margin-top: 1px;
}
#menubar .navbar {
border-top: 1px;
border-radius: 0px 0px 2px 2px;
margin-bottom: 0px;
}
#menubar .navbar-toggle {
float: left;
padding-top: 7px;
padding-bottom: 7px;
border: none;
}
#menubar .navbar-collapse {
clear: left;
}
.nav-wrapper {
border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
padding-top: 4px;
}
ul#help_menu li a {
overflow: hidden;
padding-right: 2.2em;
}
ul#help_menu li a i {
margin-right: -1.2em;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.dropdown-submenu > a:after {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: block;
content: "\f0da";
float: right;
color: #333333;
margin-top: 2px;
margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
color: #262626;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
left: -100%;
margin-left: 10px;
}
#notification_area {
float: right !important;
float: right;
z-index: 10;
}
.indicator_area {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
#kernel_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
padding-left: 5px;
padding-right: 5px;
}
#modal_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
#readonly-indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
margin-top: 2px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
display: none;
}
.modal_indicator:before {
width: 1.28571429em;
text-align: center;
}
.edit_mode .modal_indicator:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.command_mode .modal_indicator:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.kernel_idle_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
margin-left: .3em;
}
.kernel_busy_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f111";
}
.kernel_busy_icon:before.pull-left {
margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
margin-left: .3em;
}
.kernel_dead_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
margin-left: .3em;
}
.kernel_disconnected_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
margin-left: .3em;
}
.notification_widget {
color: #777;
z-index: 10;
background: rgba(240, 240, 240, 0.5);
margin-right: 4px;
color: #333;
background-color: #fff;
border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.notification_widget:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
background-color: #fff;
border-color: #ccc;
}
.notification_widget .badge {
color: #fff;
background-color: #333;
}
.notification_widget.warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.notification_widget.warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.notification_widget.success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.notification_widget.success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success .badge {
color: #5cb85c;
background-color: #fff;
}
.notification_widget.info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.notification_widget.info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info .badge {
color: #5bc0de;
background-color: #fff;
}
.notification_widget.danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.notification_widget.danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger .badge {
color: #d9534f;
background-color: #fff;
}
div#pager {
background-color: #fff;
font-size: 14px;
line-height: 20px;
overflow: hidden;
display: none;
position: fixed;
bottom: 0px;
width: 100%;
max-height: 50%;
padding-top: 8px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
/* Display over codemirror */
z-index: 100;
/* Hack which prevents jquery ui resizable from changing top. */
top: auto !important;
}
div#pager pre {
line-height: 1.21429em;
color: #000;
background-color: #f7f7f7;
padding: 0.4em;
}
div#pager #pager-button-area {
position: absolute;
top: 8px;
right: 20px;
}
div#pager #pager-contents {
position: relative;
overflow: auto;
width: 100%;
height: 100%;
}
div#pager #pager-contents #pager-container {
position: relative;
padding: 15px 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
top: 0px;
height: 8px;
background: #f7f7f7;
border-top: 1px solid #cfcfcf;
border-bottom: 1px solid #cfcfcf;
/* This injects handle bars (a short, wide = symbol) for
the resize handle. */
}
div#pager .ui-resizable-handle::after {
content: '';
top: 2px;
left: 50%;
height: 3px;
width: 30px;
margin-left: -15px;
position: absolute;
border-top: 1px solid #cfcfcf;
}
.quickhelp {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
line-height: 1.8em;
}
.shortcut_key {
display: inline-block;
width: 21ex;
text-align: right;
font-family: monospace;
}
.shortcut_descr {
display: inline-block;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
span.save_widget {
margin-top: 6px;
}
span.save_widget span.filename {
height: 1em;
line-height: 1em;
padding: 3px;
margin-left: 16px;
border: none;
font-size: 146.5%;
border-radius: 2px;
}
span.save_widget span.filename:hover {
background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
font-size: small;
}
@media (max-width: 767px) {
span.save_widget {
font-size: small;
}
span.checkpoint_status,
span.autosave_status {
display: none;
}
}
@media (min-width: 768px) and (max-width: 991px) {
span.checkpoint_status {
display: none;
}
span.autosave_status {
font-size: x-small;
}
}
.toolbar {
padding: 0px;
margin-left: -5px;
margin-top: 2px;
margin-bottom: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
width: auto;
vertical-align: middle;
margin-right: 2px;
margin-bottom: 0px;
display: inline;
font-size: 92%;
margin-left: 0.3em;
margin-right: 0.3em;
padding: 0px;
padding-top: 3px;
}
.toolbar .btn {
padding: 2px 8px;
}
.toolbar .btn-group {
margin-top: 0px;
margin-left: 5px;
}
#maintoolbar {
margin-bottom: -3px;
margin-top: -8px;
border: 0px;
min-height: 27px;
margin-left: 0px;
padding-top: 11px;
padding-bottom: 3px;
}
#maintoolbar .navbar-text {
float: none;
vertical-align: middle;
text-align: right;
margin-left: 5px;
margin-right: 0px;
margin-top: 0px;
}
.select-xs {
height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
background-color: #F37626;
color: white;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
* of chance of beeing generated from the ../less/[samename].less file, you can
* try to get back the less file by reverting somme commit in history
**/
/*
* We'll try to get something pretty, so we
* have some strange css to have the scroll bar on
* the left with fix button on the top right of the tooltip
*/
@-moz-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-webkit-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/*properties of tooltip after "expand"*/
.bigtooltip {
overflow: auto;
height: 200px;
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
text-overflow: ellipsis;
overflow: hidden;
height: 80px;
}
.tooltipbuttons {
position: absolute;
padding-right: 15px;
top: 0px;
right: 0px;
}
.tooltiptext {
/*avoid the button to overlap on some docstring*/
padding-right: 30px;
}
.ipython_tooltip {
max-width: 700px;
/*fade-in animation when inserted*/
-webkit-animation: fadeOut 400ms;
-moz-animation: fadeOut 400ms;
animation: fadeOut 400ms;
-webkit-animation: fadeIn 400ms;
-moz-animation: fadeIn 400ms;
animation: fadeIn 400ms;
vertical-align: middle;
background-color: #f7f7f7;
overflow: visible;
border: #ababab 1px solid;
outline: none;
padding: 3px;
margin: 0px;
padding-left: 7px;
font-family: monospace;
min-height: 50px;
-moz-box-shadow: 0px 6px 10px -1px #adadad;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
border-radius: 2px;
position: absolute;
z-index: 1000;
}
.ipython_tooltip a {
float: right;
}
.ipython_tooltip .tooltiptext pre {
border: 0;
border-radius: 0;
font-size: 100%;
background-color: #f7f7f7;
}
.pretooltiparrow {
left: 0px;
margin: 0px;
top: -16px;
width: 40px;
height: 16px;
overflow: hidden;
position: absolute;
}
.pretooltiparrow:before {
background-color: #f7f7f7;
border: 1px #ababab solid;
z-index: 11;
content: "";
position: absolute;
left: 15px;
top: 10px;
width: 25px;
height: 25px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
}
ul.typeahead-list i {
margin-left: -10px;
width: 18px;
}
ul.typeahead-list {
max-height: 80vh;
overflow: auto;
}
ul.typeahead-list > li > a {
/** Firefox bug **/
/* see https://github.com/jupyter/notebook/issues/559 */
white-space: normal;
}
.cmd-palette .modal-body {
padding: 7px;
}
.cmd-palette form {
background: white;
}
.cmd-palette input {
outline: none;
}
.no-shortcut {
display: none;
}
.command-shortcut:before {
content: "(command)";
padding-right: 3px;
color: #777777;
}
.edit-shortcut:before {
content: "(edit)";
padding-right: 3px;
color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
background-color: #BBDEFB;
border-color: #90CAF9;
border-style: solid;
border-width: 1px;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
background-color: #FFCDD2;
border-color: #EF9A9A;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
background-color: #C8E6C9;
border-color: #A5D6A7;
border-radius: 0px;
}
#find-and-replace #replace-preview {
max-height: 60vh;
overflow: auto;
}
#find-and-replace #replace-preview pre {
padding: 5px 10px;
}
.terminal-app {
background: #EEE;
}
.terminal-app #header {
background: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
width: 100%;
float: left;
font-family: monospace;
color: white;
background: black;
padding: 0.4em;
border-radius: 2px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
line-height: 1em;
font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
padding: 10px;
}
.terminal-app .terminal-cursor {
color: black;
background: white;
}
.terminal-app #terminado-container {
margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
</style>
<style type="text/css">
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
overflow: visible;
padding: 8px;
}
div#notebook {
overflow: visible;
border-top: none;
}@media print {
div.cell {
display: block;
page-break-inside: avoid;
}
div.output_wrapper {
display: block;
page-break-inside: avoid;
}
div.output {
display: block;
page-break-inside: avoid;
}
}
</style>
<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">
<!-- Loading mathjax macro -->
<!-- Load mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
// Center justify equations in code and markdown cells. Elsewhere
// we use CSS to left justify single line equations in code cells.
displayAlign: 'center',
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}},
linebreaks: { automatic: true }
}
});
</script>
<!-- End of mathjax configuration --></head>
<body>
<div tabindex="-1" id="notebook" class="border-box-sizing">
<div class="container" id="notebook-container">
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Text-1:-Vector-space-models">Text 1: Vector space models<a class="anchor-link" href="#Text-1:-Vector-space-models">&#182;</a></h1><p><strong>Internet Analytics - Lab 4</strong></p>
<hr>
<p><strong>Group:</strong> <em>J</em></p>
<p><strong>Names:</strong></p>
<ul>
<li><em>Dennis Gankin</em></li>
<li><em>ZHANG Yuan</em></li>
<li><em>JI Yipeng</em></li>
</ul>
<hr>
<h4 id="Instructions">Instructions<a class="anchor-link" href="#Instructions">&#182;</a></h4><p><em>This is a template for part 1 of the lab. Clearly write your answers, comments and interpretations in Markodown cells. Don't forget that you can add $\LaTeX$ equations in these cells. Feel free to add or remove any cell.</em></p>
<p><em>Please properly comment your code. Code readability will be considered for grading. To avoid long cells of codes in the notebook, you can also embed long python functions and classes in a separate module. Don’t forget to hand in your module if that is the case. In multiple exercises, you are required to come up with your own method to solve various problems. Be creative and clearly motivate and explain your methods. Creativity and clarity will be considered for grading.</em></p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pickle</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">scipy.sparse</span> <span class="k">import</span> <span class="n">csr_matrix</span>
<span class="kn">from</span> <span class="nn">utils</span> <span class="k">import</span> <span class="n">load_json</span><span class="p">,</span> <span class="n">load_pkl</span>
<span class="n">courses</span> <span class="o">=</span> <span class="n">load_json</span><span class="p">(</span><span class="s1">&#39;data/courses.txt&#39;</span><span class="p">)</span>
<span class="n">stopwords</span> <span class="o">=</span> <span class="n">load_pkl</span><span class="p">(</span><span class="s1">&#39;data/stopwords.pkl&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#check format</span>
<span class="nb">print</span><span class="p">(</span><span class="n">courses</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;courseId&#39;: &#39;MSE-440&#39;, &#39;name&#39;: &#39;Composites technology&#39;, &#39;description&#39;: &#34;The latest developments in processing and the novel generations of organic composites are discussed. Nanocomposites, adaptive composites and biocomposites are presented. Product development, cost analysis and study of new markets are practiced in team work. Content Basics of composite materialsConstituentsProcessing of compositesDesign of composite structures\xa0Current developmentNanocomposites Textile compositesBiocompositesAdaptive composites\xa0ApplicationsDriving forces and marketsCost analysisAerospaceAutomotiveSport Keywords Composites - Applications - Nanocomposites - Biocomposites - Adaptive composites - Design - Cost Learning Prerequisites Required courses Notion of polymers Recommended courses Polymer Composites Learning Outcomes By the end of the course, the student must be able to: Propose suitable design, production and performance criteria for the production of a composite partApply the basic equations for process and mechanical properties modelling for composite materialsDiscuss the main types of composite applications Transversal skills Use a work methodology appropriate to the task.Use both general and domain specific IT resources and toolsCommunicate effectively with professionals from other disciplines.Evaluate one&#39;s own performance in the team, receive and respond appropriately to feedback. Teaching methods Ex cathedra and invited speakers Group sessions with exercises or work on the project Expected student activities Attendance at lectures Design of a composite part, bibliography search \xa0 Assessment methods Written exam report and oral presentation in class&#34;}
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Exercise-4.1:-Pre-processing">Exercise 4.1: Pre-processing<a class="anchor-link" href="#Exercise-4.1:-Pre-processing">&#182;</a></h2><p>Pre-process the corpus to create bag-of-words representations of each document. You are free
to proceed as you wish.</p>
<p>We are using the follwoing approaches:</p>
<ul>
<li>Remove the stopwords.</li>
<li>Remove the punctuation.</li>
<li>Remove the very frequent words.</li>
<li>Remove the very infrequent words</li>
<li>Stem the words (look for
stemming
online).</li>
<li>Lemmatise the words (look for
lemmatization
online).</li>
<li>Add bigrams</li>
</ul>
<ol>
<li>Explain which ones you implemented and why.</li>
<li>Print the terms in the pre-processed description of the IX class in alphabetical order.</li>
</ol>
<hr>
<h4 id="Remove-stopwords-and-punctuation">Remove stopwords and punctuation<a class="anchor-link" href="#Remove-stopwords-and-punctuation">&#182;</a></h4><p><strong>Why:</strong> Punctuation only helps humans to structure and read the sentences but does not carry useful information about the topic. Thus, we can remove it. Stopwords are similar, as they represent the most common words in a language and usually only help connect and build a sentnce without adding meaning to it (e.g. think of articles (a,the..) or connectors (and,or, hence..) ). So stopwords are also removed.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#add punctiation to the stop words, to remove it, too</span>
<span class="n">punctuation</span><span class="o">=</span><span class="nb">set</span><span class="p">({</span><span class="s1">&#39;’&#39;</span><span class="p">,</span> <span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="s1">&#39;/&#39;</span><span class="p">,</span> <span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;#&#39;</span><span class="p">,</span> <span class="s1">&#39;.,&#39;</span><span class="p">,</span> <span class="s1">&#39;):&#39;</span><span class="p">,</span> <span class="s1">&#39;&quot;&#39;</span><span class="p">,</span> <span class="s1">&#39;(&#39;</span><span class="p">,</span> <span class="s1">&#39;$&#39;</span><span class="p">,</span> <span class="s1">&#39;`&#39;</span><span class="p">,</span> <span class="s1">&#39;);&#39;</span><span class="p">,</span> <span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="s1">&#39;)&#39;</span><span class="p">,</span> <span class="s1">&#39;+&#39;</span><span class="p">,</span> <span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="s2">&quot;&#39;&quot;</span><span class="p">,</span> <span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\t</span><span class="s1">&#39;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;://&#39;</span><span class="p">,</span> <span class="s1">&#39;%).&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">,</span> <span class="s1">&#39;),&#39;</span><span class="p">,</span> <span class="s1">&#39;_&#39;</span><span class="p">,</span> <span class="s1">&#39;^&#39;</span><span class="p">,</span> <span class="s1">&#39;”&#39;</span><span class="p">,</span> <span class="s1">&#39;;&#39;</span><span class="p">,</span> <span class="s1">&#39;%&#39;</span><span class="p">,</span> <span class="s1">&#39;&amp;&#39;</span><span class="p">,</span> <span class="s1">&#39;&lt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;:&#39;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\\</span><span class="s1">&#39;</span><span class="p">,</span> <span class="s1">&#39;~&#39;</span><span class="p">,</span> <span class="s1">&#39;*&#39;</span><span class="p">,</span> <span class="s1">&#39;!&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">,</span> <span class="s1">&#39;&quot;,&#39;</span><span class="p">,</span> <span class="s1">&#39;).&#39;</span><span class="p">,</span> <span class="s1">&#39;&amp;)&#39;</span><span class="p">,</span> <span class="s1">&#39;@&#39;</span><span class="p">})</span>
<span class="n">stopwords</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">punctuation</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">digit_split</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;(\d+)&#39;</span><span class="p">,</span> <span class="n">s</span><span class="p">)))</span>
<span class="c1">#import natural language toolkit for processing</span>
<span class="kn">import</span> <span class="nn">nltk</span>
<span class="kn">from</span> <span class="nn">nltk.tokenize</span> <span class="k">import</span> <span class="n">word_tokenize</span>
<span class="kn">from</span> <span class="nn">nltk.stem.porter</span> <span class="k">import</span> <span class="o">*</span>
<span class="kn">import</span> <span class="nn">re</span>
<span class="c1">#tokenizer = nltk.data.load(&#39;tokenizers/punkt/PY3/english.pickle&#39;)</span>
<span class="k">def</span> <span class="nf">preprocess</span><span class="p">(</span><span class="n">course_list</span><span class="p">):</span>
<span class="c1">#removing stopwords, punctuation, splitting numbers and words</span>
<span class="c1">#dict to count frequency</span>
<span class="n">word_freq</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">processed_courses</span><span class="o">=</span> <span class="n">course_list</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="k">for</span> <span class="n">course_id</span><span class="p">,</span> <span class="n">course</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">courses</span><span class="p">):</span>
<span class="c1">#preprocess the description</span>
<span class="n">description</span> <span class="o">=</span> <span class="n">course</span><span class="p">[</span><span class="s1">&#39;description&#39;</span><span class="p">]</span>
<span class="n">wordlist</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">word_tokenize</span><span class="p">(</span><span class="n">description</span><span class="p">):</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="c1"># to lowercase</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">digit_split</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> <span class="c1">#split words concatinated with a number (without space inbetween)</span>
<span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
<span class="c1">#remove stopwords and puctuation and check if word alphabetic (probably unneccessary)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">word</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">stopwords</span><span class="p">)</span> <span class="ow">and</span> <span class="n">word</span><span class="o">.</span><span class="n">isalpha</span><span class="p">():</span>
<span class="n">wordlist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">word</span><span class="p">)</span>
<span class="c1">#add to frequency list</span>
<span class="n">word_freq</span><span class="p">[</span><span class="n">word</span><span class="p">]</span><span class="o">=</span><span class="n">word_freq</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">word</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span>
<span class="n">processed_courses</span><span class="p">[</span><span class="n">course_id</span><span class="p">][</span><span class="s1">&#39;wordlist&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">wordlist</span>
<span class="k">return</span> <span class="n">processed_courses</span><span class="p">,</span><span class="n">nltk</span><span class="o">.</span><span class="n">FreqDist</span><span class="p">(</span><span class="n">word_freq</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">processed_courses</span><span class="p">,</span><span class="n">word_freq</span><span class="o">=</span><span class="n">preprocess</span><span class="p">(</span><span class="n">courses</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Remove-the-very-frequent-words">Remove the very frequent words<a class="anchor-link" href="#Remove-the-very-frequent-words">&#182;</a></h4><p><strong>Why:</strong> Below we can see the word distribution of the 35 most frequent words over all documents (not cumulated). This is a power law distribution. That means that the most common words are used much more often than the other words. Using a word too often makes a word useless for topic classification as it will be part of any topic. The most frequent words (methods, learning, student) prove this point. Of course they are used often in course descriptions because the words are closesly connected to university but they are too broad to indicate a specific topic or field of studies. Therefore, we remove the most frequent words.</p>
<p>The plot below shows the most frequent words. We decide to delete the first ten words as methods..students..end seem very vague. After that the words assesment, outcomes, prerequisites seem very general,too but they might already contain some info. E.g. there might be some courses with more prerequisites than others.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">word_freq</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="mi">35</span><span class="p">,</span><span class="n">cumulative</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
jvh/+RDk7pfwYeAAAAAASUVORK5CYII=
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Remove-the-very-infrequent-words">Remove the very infrequent words<a class="anchor-link" href="#Remove-the-very-infrequent-words">&#182;</a></h4><p><strong>Why:</strong> Below we can see words that only appear once over all topics. We notice that apart from very special terms many of those words are misspellings of more frequent words. It is quite hard to find and correct all misspellings. As the words are so infrequent they do not really carry any meaning and should thus be removed.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#words appearing only once</span>
<span class="n">word_freq</span><span class="o">.</span><span class="n">hapaxes</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt output_prompt">Out[7]:</div>
<div class="output_text output_subarea output_execute_result">
<pre>[&#39;materialsconstituentsprocessing&#39;,
&#39;developmentnanocomposites&#39;,
&#39;textile&#39;,
&#39;compositesbiocompositesadaptive&#39;,
&#39;applicationsdriving&#39;,
&#39;marketscost&#39;,
&#39;analysisaerospaceautomotivesport&#39;,
&#39;partapply&#39;,
&#39;materialsdiscuss&#39;,
&#39;photograph&#39;,
&#39;blot&#39;,
&#39;extracted&#39;,
&#39;reproducibility&#39;,
&#39;pipelines&#39;,
&#39;autonomously&#39;,
&#39;visualisation&#39;,
&#39;payments&#39;,
&#39;runillustrate&#39;,
&#39;rundevelop&#39;,
&#39;determinationillustrate&#39;,
&#39;runexplain&#39;,
&#39;areaassess&#39;,
&#39;eurozoneassess&#39;,
&#39;wealthintegrate&#39;,
&#39;nontraded&#39;,
&#39;runcompare&#39;,
&#39;regimesexpound&#39;,
&#39;crisesillustrate&#39;,
&#39;begiven&#39;,
&#39;recommend&#39;,
&#39;eurozone&#39;,
&#39;immobilization&#39;,
&#39;indeterminate&#39;,
&#39;statique&#39;,
&#39;torquescompute&#39;,
&#39;dcompute&#39;,
&#39;problemdemonstrate&#39;,
&#39;superseded&#39;,
&#39;untapped&#39;,
&#39;locations&#39;,
&#39;fallsemester&#39;,
&#39;prefabrication&#39;,
&#39;gallen&#39;,
&#39;pavilion&#39;,
&#39;energetically&#39;,
&#39;optimised&#39;,
&#39;qualified&#39;,
&#39;alongside&#39;,
&#39;visualisations&#39;,
&#39;unfired&#39;,
&#39;clay&#39;,
&#39;wayne&#39;,
&#39;switzer&#39;,
&#39;corentin&#39;,
&#39;fivet&#39;,
&#39;sitterwerk&#39;,
&#39;ryzard&#39;,
&#39;gorajek&#39;,
&#39;chemicalreaction&#39;,
&#39;retroactivity&#39;,
&#39;functionsidentify&#39;,
&#39;recurring&#39;,
&#39;networksdescribe&#39;,
&#39;appearing&#39;,
&#39;organismscompare&#39;,
&#39;spectrometric&#39;,
&#39;andmetabolomics&#39;,
&#39;protons&#39;,
&#39;spectrawork&#39;,
&#39;masschoose&#39;,
&#39;methodpropose&#39;,
&#39;analyzerselect&#39;,
&#39;detectordistinguish&#39;,
&#39;statesreconstruct&#39;,
&#39;sequencedistinguish&#39;,
&#39;channelsoptimal&#39;,
&#39;channelsvarious&#39;,
&#39;performanceefficient&#39;,
&#39;machinesefficient&#39;,
&#39;bandlimited&#39;,
&#39;channelsnyquist&#39;,
&#39;criterioncommunicating&#39;,
&#39;nyquist&#39;,
&#39;qam&#39;,
&#39;psk&#39;,
&#39;modèles&#39;,
&#39;linkdesign&#39;,
&#39;linkimplement&#39;,
&#39;untimed&#39;,
&#39;tlm&#39;,
&#39;dataflow&#39;,
&#39;df&#39;,
&#39;osvvm&#39;,
&#39;jantsch&#39;,
&#39;elsevier&#39;,
&#39;chu&#39;,
&#39;portability&#39;,
&#39;spear&#39;,
&#39;tumbush&#39;,
&#39;testbench&#39;,
&#39;spearmodeling&#39;,
&#39;jantschrtl&#39;,
&#39;chusystem&#39;,
&#39;heuristic&#39;,
&#39;logistical&#39;,
&#39;firstly&#39;,
&#39;compartmental&#39;,
&#39;fryback&#39;,
&#39;taxonomy&#39;,
&#39;illusion&#39;,
&#39;anthropomorphic&#39;,
&#39;cbcm&#39;,
&#39;ftcm&#39;,
&#39;ftcc&#39;,
&#39;vdcm&#39;,
&#39;ddsm&#39;,
&#39;thiols&#39;,
&#39;materialschoose&#39;,
&#39;materialsjudge&#39;,
&#39;interfacedesign&#39;,
&#39;biosensingdesign&#39;,
&#39;levelrealize&#39;,
&#39;investigatediscuss&#39;,
&#39;digaonalization&#39;,
&#39;solutations&#39;,
&#39;eigenstates&#39;,
&#39;updated&#39;,
&#39;login&#39;,
&#39;tba&#39;,
&#39;requrired&#39;,
&#39;propertiesstep&#39;,
&#39;polymerizationradical&#39;,
&#39;emulsion&#39;,
&#39;polymerizationionic&#39;,
&#39;anionic&#39;,
&#39;cationic&#39;,
&#39;techniquespropose&#39;,
&#39;polymersspecify&#39;,
&#39;chainlike&#39;,
&#39;architecturediscuss&#39;,
&#39;polymersuse&#39;,
&#39;contributes&#39;,
&#39;neurprostheses&#39;,
&#39;thinkingassess&#39;,
&#39;clinic&#39;,
&#39;technically&#39;,
&#39;cse&#39;,
&#39;preferentially&#39;,
&#39;annotations&#39;,
&#39;provenance&#39;,
&#39;discrepancies&#39;,
&#39;findingsassess&#39;,
&#39;modelsintegrate&#39;,
&#39;simulationsexploit&#39;,
&#39;softwareanalyze&#39;,
&#39;predictionsexplain&#39;,
&#39;mike&#39;,
&#39;methodologydesign&#39;,
&#39;attributesillustration&#39;,
&#39;instrumentsexercises&#39;,
&#39;specifica&#39;,
&#39;indices&#39;,
&#39;goodness&#39;,
&#39;doubling&#39;,
&#39;measurementperform&#39;,
&#39;measurementexplain&#39;,
&#39;katsunari&#39;,
&#39;okamoto&#39;,
&#39;hunsperger&#39;,
&#39;okamotofundamentals&#39;,
&#39;salehintegrated&#39;,
&#39;hunspergeran&#39;,
&#39;singularities&#39;,
&#39;elastoplastic&#39;,
&#39;abatement&#39;,
&#39;regulated&#39;,
&#39;countriescategorize&#39;,
&#39;worldview&#39;,
&#39;microphysical&#39;,
&#39;break&#39;,
&#39;normes&#39;,
&#39;phyics&#39;,
&#39;emergentism&#39;,
&#39;pluralism&#39;,
&#39;autonomy&#39;,
&#39;determinism&#39;,
&#39;indeterminism&#39;,
&#39;indivual&#39;,
&#39;sampleionization&#39;,
&#39;maldi&#39;,
&#39;electrospray&#39;,
&#39;isotopicdistribution&#39;,
&#39;sampleseparation&#39;,
&#39;proteindigestion&#39;,
&#39;severalpeptides&#39;,
&#39;monoisotopicmass&#39;,
&#39;weightmeasurement&#39;,
&#39;samplesas&#39;,
&#39;intact&#39;,
&#39;digestionfinalization&#39;,
&#39;desalting&#39;,
&#39;mw&#39;,
&#39;illustratetandem&#39;,
&#39;principlesfor&#39;,
&#39;fractionations&#39;,
&#39;silac&#39;,
&#39;dimethyl&#39;,
&#39;srm&#39;,
&#39;spectrometryapply&#39;,
&#39;fielddescribe&#39;,
&#39;courseperform&#39;,
&#39;experimentsanalyze&#39;,
&#39;experimentsselect&#39;,
&#39;analyzeddecide&#39;,
&#39;contextssystematize&#39;,
&#39;practicalsessions&#39;,
&#39;massspectrometry&#39;,
&#39;inpractical&#39;,
&#39;thetechnique&#39;,
&#39;jonathan&#39;,
&#39;paz&#39;,
&#39;montoya&#39;,
&#39;adrien&#39;,
&#39;schmid&#39;,
&#39;aluminate&#39;,
&#39;hydratin&#39;,
&#39;appropriatness&#39;,
&#39;solutionsdesign&#39;,
&#39;sessins&#39;,
&#39;regional&#39;,
&#39;recommendations&#39;,
&#39;problemjustify&#39;,
&#39;analysisderive&#39;,
&#39;studentsapply&#39;,
&#39;federal&#39;,
&#39;linearity&#39;,
&#39;branches&#39;,
&#39;dimentional&#39;,
&#39;dimentionless&#39;,
&#39;blasius&#39;,
&#39;karman&#39;,
&#39;ergun&#39;,
&#39;fluidization&#39;,
&#39;pritning&#39;,
&#39;flexography&#39;,
&#39;oven&#39;,
&#39;opvs&#39;,
&#39;rectennas&#39;,
&#39;tfts&#39;,
&#39;gated&#39;,
&#39;submicrometer&#39;,
&#39;smd&#39;,
&#39;sun&#39;,
&#39;worm&#39;,
&#39;permeation&#39;,
&#39;roadmapping&#39;,
&#39;opv&#39;,
&#39;institutes&#39;,
&#39;compatible&#39;,
&#39;technologyintegrate&#39;,
&#39;techniquespredict&#39;,
&#39;systemsillustrate&#39;,
&#39;manufacturingcompose&#39;,
&#39;touches&#39;,
&#39;pcp&#39;,
&#39;théorique&#39;,
&#39;problemsformalize&#39;,
&#39;protocolsdescribe&#39;,
&#39;computationmodel&#39;,
&#39;scenariosexplain&#39;,
&#39;pseudorandomnessperform&#39;,
&#39;argueformulatesystematizedevelop&#39;,
&#39;poroelasticity&#39;,
&#39;poromechanics&#39;,
&#39;completionevaluate&#39;,
&#39;fracturingdiscuss&#39;,
&#39;monotonic&#39;,
&#39;loadings&#39;,
&#39;expressing&#39;,
&#39;slabs&#39;,
&#39;uniaxial&#39;,
&#39;corotational&#39;,
&#39;timoshenko&#39;,
&#39;sectional&#39;,
&#39;shell&#39;,
&#39;pushover&#39;,
&#39;blind&#39;,
&#39;almeida&#39;,
&#39;kiarash&#39;,
&#39;dolatshahi&#39;,
&#39;eesd&#39;,
&#39;katrin&#39;,
&#39;beyer&#39;,
&#39;modélisation&#39;,
&#39;béton&#39;,
&#39;approacheschoose&#39;,
&#39;deformationsconduct&#39;,
&#39;structuresapply&#39;,
&#39;analysisinterpret&#39;,
&#39;achievable&#39;,
&#39;parityexplain&#39;,
&#39;issuesimplement&#39;,
&#39;apt&#39;,
&#39;capmassess&#39;,
&#39;liquiditycharacterize&#39;,
&#39;makingcontrast&#39;,
&#39;marketsimplement&#39;,
&#39;conceptscharacterize&#39;,
&#39;thereofdesign&#39;,
&#39;momentumderive&#39;,
&#39;premia&#39;,
&#39;zvi&#39;,
&#39;alex&#39;,
&#39;kane&#39;,
&#39;alan&#39;,
&#39;diesel&#39;,
&#39;ignition&#39;,
&#39;supercharging&#39;,
&#39;dependant&#39;,
&#39;hybrids&#39;,
&#39;ambient&#39;,
&#39;hydrocarbons&#39;,
&#39;weee&#39;,
&#39;recover&#39;,
&#39;wasteexplain&#39;,
&#39;extractiondescribe&#39;,
&#39;treatmentassess&#39;,
&#39;textiles&#39;,
&#39;auto&#39;,
&#39;regressive&#39;,
&#39;principale&#39;,
&#39;wiener&#39;,
&#39;likehood&#39;,
&#39;mask&#39;,
&#39;periodogram&#39;,
&#39;transmissions&#39;,
&#39;spikes&#39;,
&#39;firing&#39;,
&#39;jacobian&#39;,
&#39;hessian&#39;,
&#39;problemsapplyefficiently&#39;,
&#39;exercisesanalyzeand&#39;,
&#39;analysismaster&#39;,
&#39;profitable&#39;,
&#39;successes&#39;,
&#39;protections&#39;,
&#39;economies&#39;,
&#39;innovating&#39;,
&#39;alliances&#39;,
&#39;marketplace&#39;,
&#39;innovators&#39;,
&#39;marketplaceinvestigate&#39;,
&#39;converting&#39;,
&#39;businessesanalyze&#39;,
&#39;innovatorscritique&#39;,
&#39;packet&#39;,
&#39;cientific&#39;,
&#39;seeks&#39;,
&#39;apache&#39;,
&#39;servicesdevelop&#39;,
&#39;servicesanalyze&#39;,
&#39;curated&#39;,
&#39;ocado&#39;,
&#39;beer&#39;,
&#39;philips&#39;,
&#39;leveraging&#39;,
&#39;obermeyer&#39;,
&#39;hilti&#39;,
&#39;lego&#39;,
&#39;freqon&#39;,
&#39;unilever&#39;,
&#39;russia&#39;,
&#39;examplesjudge&#39;,
&#39;practisesanalyze&#39;,
&#39;alternativespropose&#39;,
&#39;optionspresent&#39;,
&#39;approachmodel&#39;,
&#39;reveal&#39;,
&#39;glimpse&#39;,
&#39;fondamentals&#39;,
&#39;tracks&#39;,
&#39;detects&#39;,
&#39;toolssummarize&#39;,
&#39;interactivity&#39;,
&#39;anns&#39;,
&#39;matric&#39;,
&#39;responsivity&#39;,
&#39;buried&#39;,
&#39;imagesensing&#39;,
&#39;photosensor&#39;,
&#39;skipper&#39;,
&#39;cmd&#39;,
&#39;imager&#39;,
&#39;impactron&#39;,
&#39;linlog&#39;,
&#39;cid&#39;,
&#39;brigade&#39;,
&#39;bbd&#39;,
&#39;psd&#39;,
&#39;phototransistors&#39;,
&#39;microbolometers&#39;,
&#39;ir&#39;,
&#39;fca&#39;,
&#39;détection&#39;,
&#39;briefs&#39;,
&#39;dutiful&#39;,
&#39;intramolecular&#39;,
&#39;thermotropic&#39;,
&#39;lyotropic&#39;,
&#39;brushes&#39;,
&#39;polyelectrolytes&#39;,
&#39;gels&#39;,
&#39;foams&#39;,
&#39;superstructurepredict&#39;,
&#39;behaviorestimate&#39;,
&#39;propertiesmodify&#39;,
&#39;themdesign&#39;,
&#39;dispersionsdesign&#39;,
&#39;interparticle&#39;,
&#39;interactiondesign&#39;,
&#39;buildling&#39;,
&#39;proportions&#39;,
&#39;quasilikelihood&#39;,
&#39;deviance&#39;,
&#39;analysisapply&#39;,
&#39;dataassess&#39;,
&#39;fitted&#39;,
&#39;improvementschoose&#39;,
&#39;indexes&#39;,
&#39;jsp&#39;,
&#39;asp&#39;,
&#39;gui&#39;,
&#39;requirementsuse&#39;,
&#39;dbmscreate&#39;,
&#39;dbmsdesign&#39;,
&#39;mindmodel&#39;,
&#39;er&#39;,
&#39;modelingexplore&#39;,
&#39;workreport&#39;,
&#39;dbmsjustify&#39;,
&#39;abou&#39;,
&#39;examinations&#39;,
&#39;pelton&#39;,
&#39;piping&#39;,
&#39;runner&#39;,
&#39;casing&#39;,
&#39;distributor&#39;,
&#39;draft&#39;,
&#39;injector&#39;,
&#39;diffuser&#39;,
&#39;turbomachinespecify&#39;,
&#39;turbinesketch&#39;,
&#39;turbomachineselect&#39;,
&#39;choix&#39;,
&#39;illustré&#39;,
&#39;réalisation&#39;,
&#39;marquantes&#39;,
&#39;franc&#39;,
&#39;avellan&#39;,
&#39;grenoble&#39;,
&#39;scientifc&#39;,
&#39;lmh&#39;,
&#39;francturbomachines&#39;,
&#39;wise&#39;,
&#39;orgqnization&#39;,
&#39;caracterization&#39;,
&#39;refreshment&#39;,
&#39;deviation&#39;,
&#39;ratios&#39;,
&#39;residuals&#39;,
&#39;factorial&#39;,
&#39;replica&#39;,
&#39;spreadsheets&#39;,
&#39;doe&#39;,
&#39;concretely&#39;,
&#39;imagine&#39;,
&#39;segments&#39;,
&#39;revolutionary&#39;,
&#39;pestle&#39;,
&#39;competency&#39;,
&#39;coopetition&#39;,
&#39;chasm&#39;,
&#39;cashflow&#39;,
&#39;designanalyze&#39;,
&#39;strategiessynthesize&#39;,
&#39;evidencesinvestigate&#39;,
&#39;permutation&#39;,
&#39;district&#39;,
&#39;preference&#39;,
&#39;technologiesuse&#39;,
&#39;tooldesign&#39;,
&#39;casesimplement&#39;,
&#39;toolanalyze&#39;,
&#39;modelapply&#39;,
&#39;casesperform&#39;,
&#39;hayat&#39;,
&#39;antigen&#39;,
&#39;publishers&#39;,
&#39;bancroft&#39;,
&#39;marilyn&#39;,
&#39;gamble&#39;,
&#39;livingstone&#39;,
&#39;pawley&#39;,
&#39;xxviii&#39;,
&#39;hardcover&#39;,
&#39;pawleyoptique&#39;,
&#39;gumicroscopy&#39;,
&#39;hayatbancroft&#39;,
&#39;bancroftoptics&#39;,
&#39;phenomenavisualize&#39;,
&#39;simulationsmodel&#39;,
&#39;extemporaneous&#39;,
&#39;polyketides&#39;,
&#39;builiding&#39;,
&#39;introductions&#39;,
&#39;stereocenters&#39;,
&#39;discrepancy&#39;,
&#39;wavelengths&#39;,
&#39;reflective&#39;,
&#39;reflectors&#39;,
&#39;shutter&#39;,
&#39;resolvable&#39;,
&#39;mirrors&#39;,
&#39;glv&#39;,
&#39;connects&#39;,
&#39;pérot&#39;,
&#39;rotators&#39;,
&#39;combiners&#39;,
&#39;splitters&#39;,
&#39;promise&#39;,
&#39;fabless&#39;,
&#39;commercially&#39;,
&#39;mpw&#39;,
&#39;mumps&#39;,
&#39;mosis&#39;,
&#39;siph&#39;,
&#39;foundries&#39;,
&#39;hermeticity&#39;,
&#39;nanosystemsanalyze&#39;,
&#39;constraintsdiscuss&#39;,
&#39;microsystempropose&#39;,
&#39;microsystemassess&#39;,
&#39;systemspropose&#39;,
&#39;autocatalytic&#39;,
&#39;explosions&#39;,
&#39;riskspropose&#39;,
&#39;measuresdesign&#39;,
&#39;plancharacterize&#39;,
&#39;reactionexploit&#39;,
&#39;measuresidentify&#39;,
&#39;risksdiscuss&#39;,
&#39;algèbre&#39;,
&#39;linéaire&#39;,
&#39;uncertaintycontrast&#39;,
&#39;dataderive&#39;,
&#39;samplescompute&#39;,
&#39;statementsinfer&#39;,
&#39;datacompute&#39;,
&#39;datasetsformulate&#39;,
&#39;problemsinterpret&#39;,
&#39;aussi&#39;,
&#39;disponible&#39;,
&#39;traduction&#39;,
&#39;française&#39;,
&#39;probabilités&#39;,
&#39;sequenced&#39;,
&#39;exomes&#39;,
&#39;catalog&#39;,
&#39;clinically&#39;,
&#39;phenotypes&#39;,
&#39;fellay&#39;,
&#39;abnormal&#39;,
&#39;solute&#39;,
&#39;strengthening&#39;,
&#39;fcc&#39;,
&#39;dislocations&#39;,
&#39;quad&#39;,
&#39;rotors&#39;,
&#39;quadrotors&#39;,
&#39;coping&#39;,
&#39;obstacle&#39;,
&#39;avoidance&#39;,
&#39;approriate&#39;,
&#39;actuationjustify&#39;,
&#39;systemimplement&#39;,
&#39;nanophysics&#39;,
&#39;converged&#39;,
&#39;encapsulate&#39;,
&#39;rationale&#39;,
&#39;gross&#39;,
&#39;respiration&#39;,
&#39;informs&#39;,
&#39;scheidweiler&#39;,
&#39;marta&#39;,
&#39;boix&#39;,
&#39;canadell&#39;,
&#39;ecosystemstheorize&#39;,
&#39;biofilm&#39;,
&#39;functionassess&#39;,
&#39;strategiesgeneralize&#39;,
&#39;biogeosciencescarry&#39;,
&#39;feeback&#39;,
&#39;prof&#39;,
&#39;battin&#39;,
&#39;catalsis&#39;,
&#39;nucleotide&#39;,
&#39;enzymesdefine&#39;,
&#39;pathwayssketch&#39;,
&#39;transformationhypothesize&#39;,
&#39;transformationpropose&#39;,
&#39;mechanismsdescribe&#39;,
&#39;metabolismexplain&#39;,
&#39;polyketide&#39;,
&#39;biosynthesisdesign&#39;,
&#39;magnetostatic&#39;,
&#39;dipoles&#39;,
&#39;proximity&#39;,
&#39;diamagnetism&#39;,
&#39;paramagnetism&#39;,
&#39;crystallization&#39;,
&#39;proteinconstruct&#39;,
&#39;spheredescribe&#39;,
&#39;setupexamine&#39;,
&#39;programestimate&#39;,
&#39;crystaldistinguish&#39;,
&#39;scatteringcreate&#39;,
&#39;projectionsexplain&#39;,
&#39;mystery&#39;,
&#39;pëtr&#39;,
&#39;broadening&#39;,
&#39;dieter&#39;,
&#39;vladimir&#39;,
&#39;dmitriev&#39;,
&#39;dmitry&#39;,
&#39;chernsyhov&#39;,
&#39;nanocrystals&#39;,
&#39;cervellino&#39;,
&#39;michel&#39;,
&#39;bonin&#39;,
&#39;emmanuelle&#39;,
&#39;rønnow&#39;,
&#39;oksana&#39;,
&#39;zaharko&#39;,
&#39;fjoh&#39;,
&#39;payment&#39;,
&#39;fees&#39;,
&#39;approval&#39;,
&#39;methodsderivatives&#39;,
&#39;saddlepoint&#39;,
&#39;modelsfinite&#39;,
&#39;optimizationmodel&#39;,
&#39;saddle&#39;,
&#39;analysisintroduction&#39;,
&#39;elementsderivatives&#39;,
&#39;epidemic&#39;,
&#39;timeacquire&#39;,
&#39;appreciation&#39;,
&#39;theorybe&#39;,
&#39;vicinity&#39;,
&#39;milky&#39;,
&#39;waymilky&#39;,
&#39;bulb&#39;,
&#39;halothe&#39;,
&#39;groupthe&#39;,
&#39;superclusterglaxy&#39;,
&#39;clusterlarge&#39;,
&#39;typethe&#39;,
&#39;nucleosynthesis&#39;,
&#39;pfenniger&#39;,
&#39;integrators&#39;,
&#39;methodsimplement&#39;,
&#39;equationsidentify&#39;,
&#39;processesmanipulate&#39;,
&#39;perfom&#39;,
&#39;equationschoose&#39;,
&#39;invertebrate&#39;,
&#39;parasites&#39;,
&#39;mucosal&#39;,
&#39;autoimmunity&#39;,
&#39;pathogen&#39;,
&#39;mucosa&#39;,
&#39;responsepredict&#39;,
&#39;pathogenpropose&#39;,
&#39;diseasesmodel&#39;,
&#39;organscharacterize&#39;,
&#39;responsesassess&#39;,
&#39;hypothesiscritique&#39;,
&#39;articleassess&#39;,
&#39;evaulate&#39;,
&#39;reportcuse&#39;,
&#39;excerises&#39;,
&#39;preperation&#39;,
&#39;summarization&#39;,
&#39;paritcipation&#39;,
&#39;bombardment&#39;,
&#39;micrstructure&#39;,
&#39;methodesexplain&#39;,
&#39;mechanismscategorize&#39;,
&#39;methodspropose&#39;,
&#39;mothods&#39;,
&#39;requirementstheorize&#39;,
&#39;succession&#39;,
&#39;overlap&#39;,
&#39;avenue&#39;,
&#39;sallaz&#39;,
&#39;façades&#39;,
&#39;italian&#39;,
&#39;magnificent&#39;,
&#39;antiquity&#39;,
&#39;fragmentary&#39;,
&#39;modest&#39;,
&#39;lost&#39;,
&#39;recklessness&#39;,
&#39;conformism&#39;,
&#39;simoultanously&#39;,
&#39;vibrant&#39;,
&#39;equatorial&#39;,
&#39;ordinarily&#39;,
&#39;committed&#39;,
&#39;transformative&#39;,
&#39;enforcing&#39;,
&#39;empower&#39;,
&#39;pwoer&#39;,
&#39;cohen&#39;,
&#39;predictione&#39;,
&#39;filed&#39;,
&#39;transmits&#39;,
&#39;redistribution&#39;,
&#39;metamorphism&#39;,
&#39;pack&#39;,
&#39;melt&#39;,
&#39;vegetation&#39;,
&#39;avalanches&#39;,
&#39;processescompute&#39;,
&#39;snowapply&#39;,
&#39;processesexplain&#39;,
&#39;coverinterpret&#39;,
&#39;genesisperform&#39;,
&#39;measurementsassess&#39;,
&#39;quadrupolar&#39;,
&#39;radiofrequency&#39;,
&#39;precession&#39;,
&#39;tranform&#39;,
&#39;overhauser&#39;,
&#39;confirmational&#39;,
&#39;resonanceinterpret&#39;,
&#39;involveddescribe&#39;,
&#39;keeler&#39;,
&#39;horeunderstanding&#39;,
&#39;keelernmr&#39;,
&#39;horespin&#39;,
&#39;charactérisation&#39;,
&#39;ciments&#39;,
&#39;composés&#39;,
&#39;rayons&#39;,
&#39;calorimétrie&#39;,
&#39;cadre&#39;,
&#39;financé&#39;,
&#39;ddc&#39;,
&#39;portland&#39;,
&#39;manufactured&#39;,
&#39;xrd&#39;,
&#39;workability&#39;,
&#39;perovskite&#39;,
&#39;moser&#39;,
&#39;applicationsdimension&#39;,
&#39;nanoelectronic&#39;,
&#39;aggressive&#39;,
&#39;analized&#39;,
&#39;dgmos&#39;,
&#39;dtmos&#39;,
&#39;gaa&#39;,
&#39;nem&#39;,
&#39;architettura&#39;,
&#39;venezia&#39;,
&#39;august&#39;,
&#39;organise&#39;,
&#39;intituled&#39;,
&#39;accompanying&#39;,
&#39;certosa&#39;,
&#39;arsenale&#39;,
&#39;cristina&#39;,
&#39;bianchetti&#39;,
&#39;lorenzo&#39;,
&#39;fabian&#39;,
&#39;viviana&#39;,
&#39;ferrario&#39;,
&#39;mcgee&#39;,
&#39;british&#39;,
&#39;stefano&#39;,
&#39;munarin&#39;,
&#39;grahame&#39;,
&#39;shane&#39;,
&#39;maria&#39;,
&#39;chiara&#39;,
&#39;tosi&#39;,
&#39;paola&#39;,
&#39;viganò&#39;,
&#39;zhu&#39;,
&#39;zhejiang&#39;,
&#39;nb&#39;,
&#39;panorama&#39;,
&#39;hgis&#39;,
&#39;iconography&#39;,
&#39;strategiesrecognize&#39;,
&#39;techniquesinterpret&#39;,
&#39;representationsdevelop&#39;,
&#39;slots&#39;,
&#39;introductionspeech&#39;,
&#39;perceptionanatomy&#39;,
&#39;cepstral&#39;,
&#39;formant&#39;,
&#39;vq&#39;,
&#39;pcm&#39;,
&#39;adpcm&#39;,
&#39;celp&#39;,
&#39;dictation&#39;,
&#39;signalrecognize&#39;,
&#39;speechrecognize&#39;,
&#39;speakerssynthesize&#39;,
&#39;speechdevelop&#39;,
&#39;benesty&#39;,
&#39;sondhi&#39;,
&#39;drygajlo&#39;,
&#39;parole&#39;,
&#39;alike&#39;,
&#39;pronounced&#39;,
&#39;proliferation&#39;,
&#39;rightfully&#39;,
&#39;widespread&#39;,
&#39;impeded&#39;,
&#39;prescribe&#39;,
&#39;pursuing&#39;,
&#39;feasible&#39;,
&#39;emplying&#39;,
&#39;crosses&#39;,
&#39;simanis&#39;,
&#39;recallbasics&#39;,
&#39;compressionoverview&#39;,
&#39;networkingbasics&#39;,
&#39;communicationinternet&#39;,
&#39;multiview&#39;,
&#39;resilient&#39;,
&#39;systemsconstruct&#39;,
&#39;methodsmultimedia&#39;,
&#39;pascal&#39;,
&#39;frossard&#39;,
&#39;plasmons&#39;,
&#39;sers&#39;,
&#39;systemscompute&#39;,
&#39;resonancespredict&#39;,
&#39;systemsexplore&#39;,
&#39;plasmonicscarry&#39;,
&#39;investigationsapply&#39;,
&#39;conceptsmake&#39;,
&#39;richer&#39;,
&#39;invisible&#39;,
&#39;pleasing&#39;,
&#39;plenoptic&#39;,
&#39;compositing&#39;,
&#39;photomontages&#39;,
&#39;panoramas&#39;,
&#39;stereoscopic&#39;,
&#39;compuational&#39;,
&#39;studens&#39;,
&#39;offline&#39;,
&#39;reaxys&#39;,
&#39;chemspider&#39;,
&#39;searchuse&#39;,
&#39;informationuse&#39;,
&#39;commit&#39;,
&#39;synchronyterminating&#39;,
&#39;byzantine&#39;,
&#39;checkpointing&#39;,
&#39;ditributed&#39;,
&#39;problemspecify&#39;,
&#39;abstractionpresent&#39;,
&#39;itanalyze&#39;,
&#39;microsoft&#39;,
&#39;intel&#39;,
&#39;genentech&#39;,
&#39;exceptional&#39;,
&#39;remains&#39;,
&#39;efpl&#39;,
&#39;surrounded&#39;,
&#39;pse&#39;,
&#39;garage&#39;,
&#39;timeframe&#39;,
&#39;knowledgeplan&#39;,
&#39;involvement&#39;,
&#39;exciting&#39;,
&#39;discoveries&#39;,
&#39;began&#39;,
&#39;visited&#39;,
&#39;orbiters&#39;,
&#39;landers&#39;,
&#39;atmospheres&#39;,
&#39;terrestrial&#39;,
&#39;giants&#39;,
&#39;volcanic&#39;,
&#39;eruptions&#39;,
&#39;ices&#39;,
&#39;hyptothesis&#39;,
&#39;planetsinterpret&#39;,
&#39;solary&#39;,
&#39;systemspecify&#39;,
&#39;asteroidcharacterize&#39;,
&#39;historyintroduction&#39;,
&#39;opticsradiometry&#39;,
&#39;photometrylight&#39;,
&#39;interactionsintroduction&#39;,
&#39;spectroscopydyes&#39;,
&#39;luminophoresprinciples&#39;,
&#39;techniquesabsorption&#39;,
&#39;cancers&#39;,
&#39;exogenous&#39;,
&#39;endogenous&#39;,
&#39;photodynamic&#39;,
&#39;photosensitisers&#39;,
&#39;biomedicine&#39;,
&#39;wainwright&#39;,
&#39;bigio&#39;,
&#39;fantini&#39;,
&#39;delineates&#39;,
&#39;facilitates&#39;,
&#39;pioneers&#39;,
&#39;efqm&#39;,
&#39;baldridge&#39;,
&#39;toyotism&#39;,
&#39;tps&#39;,
&#39;audits&#39;,
&#39;certification&#39;,
&#39;doctrine&#39;,
&#39;sr&#39;,
&#39;firmidentify&#39;,
&#39;stake&#39;,
&#39;environmentintegrate&#39;,
&#39;businesinvestigate&#39;,
&#39;qms&#39;,
&#39;mail&#39;,
&#39;objectif&#39;,
&#39;mitonneau&#39;,
&#39;siegel&#39;,
&#39;weil&#39;,
&#39;découvete&#39;,
&#39;siegelle&#39;,
&#39;weiliso&#39;,
&#39;mitonneauobjectif&#39;,
&#39;jaccardthe&#39;,
&#39;penetrant&#39;,
&#39;leak&#39;,
&#39;diverted&#39;,
&#39;ultrasonics&#39;,
&#39;transposition&#39;,
&#39;metapopulation&#39;,
&#39;wetlands&#39;,
&#39;forests&#39;,
&#39;grasslands&#39;,
&#39;eerecognize&#39;,
&#39;eeassess&#39;,
&#39;articleelaborate&#39;,
&#39;learnt&#39;,
&#39;problemstranspose&#39;,
&#39;problemsexamine&#39;,
&#39;palmer&#39;,
&#39;zedler&#39;,
&#39;conserving&#39;,
&#39;townsend&#39;,
&#39;begon&#39;,
&#39;harper&#39;,
&#39;aronson&#39;,
&#39;townsendecological&#39;,
&#39;endocrinology&#39;,
&#39;steroid&#39;,
&#39;preliminaries&#39;,
&#39;unlinkability&#39;,
&#39;unobservability&#39;,
&#39;credentials&#39;,
&#39;garbled&#39;,
&#39;homomorphic&#39;,
&#39;composability&#39;,
&#39;pir&#39;,
&#39;oblivious&#39;,
&#39;oram&#39;,
&#39;surfing&#39;,
&#39;systempropose&#39;,
&#39;solutionsimplement&#39;,
&#39;solutionsestimate&#39;,
&#39;hoare&#39;,
&#39;predicate&#39;,
&#39;smt&#39;,
&#39;provers&#39;,
&#39;fluency&#39;,
&#39;sipser&#39;,
&#39;haskell&#39;,
&#39;correctnessprove&#39;,
&#39;papersketch&#39;,
&#39;algorithminterpret&#39;,
&#39;verifierconstruct&#39;,
&#39;solversystematize&#39;,
...]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Remove-most-and-least-frequent-words">Remove most and least frequent words<a class="anchor-link" href="#Remove-most-and-least-frequent-words">&#182;</a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#todo get leats frequent words</span>
<span class="n">most_frequent</span><span class="o">=</span><span class="p">[</span><span class="n">word</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">word_freq</span><span class="o">.</span><span class="n">most_common</span><span class="p">(</span><span class="mi">10</span><span class="p">)]</span>
<span class="n">least_frequent</span><span class="o">=</span><span class="n">word_freq</span><span class="o">.</span><span class="n">hapaxes</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">delete_words</span><span class="p">(</span><span class="n">course_list</span><span class="p">,</span> <span class="n">to_delete</span><span class="p">):</span>
<span class="c1">#removing stopwords, punctuation, splitting numbers and words</span>
<span class="c1">#dict to count frequency</span>
<span class="n">word_freq</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">processed_courses</span><span class="o">=</span> <span class="n">course_list</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="k">for</span> <span class="n">course_id</span><span class="p">,</span> <span class="n">course</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">course_list</span><span class="p">):</span>
<span class="c1">#preprocess the description</span>
<span class="n">wordlist</span> <span class="o">=</span> <span class="n">course</span><span class="p">[</span><span class="s1">&#39;wordlist&#39;</span><span class="p">]</span>
<span class="n">new_word_list</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">wordlist</span><span class="p">:</span>
<span class="c1">#remove words to be deleted</span>
<span class="k">if</span> <span class="p">(</span><span class="n">word</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">to_delete</span><span class="p">):</span>
<span class="n">new_word_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">word</span><span class="p">)</span>
<span class="c1">#add to frequency list</span>
<span class="n">word_freq</span><span class="p">[</span><span class="n">word</span><span class="p">]</span><span class="o">=</span><span class="n">word_freq</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">word</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span>
<span class="n">processed_courses</span><span class="p">[</span><span class="n">course_id</span><span class="p">][</span><span class="s1">&#39;cut_wordlist&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_word_list</span>
<span class="k">return</span> <span class="n">processed_courses</span><span class="p">,</span><span class="n">nltk</span><span class="o">.</span><span class="n">FreqDist</span><span class="p">(</span><span class="n">word_freq</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">processed_courses</span><span class="p">,</span><span class="n">word_freq</span><span class="o">=</span><span class="n">delete_words</span><span class="p">(</span><span class="n">courses</span><span class="p">,</span><span class="n">most_frequent</span><span class="o">+</span><span class="n">least_frequent</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">word_freq</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="mi">35</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Stemming-vs-Lemmatization">Stemming vs Lemmatization<a class="anchor-link" href="#Stemming-vs-Lemmatization">&#182;</a></h4><p>The goal of both stemming and lemmatization is to reduce inflectional forms and sometimes derivationally related forms of a word to a common base form.</p>
<p>Word stemming means removing affixes from words and return the root word.
Lemmatization is a similar approach but based on a vocabulary and morphological analysis of words. It aims to return the base or dictionary form of a word (lemma).</p>
<p>So the difference is that stemming can create non-existent words, whereas lemmas are actual words.</p>
<p>Thus, lemmatization is probably more accurate as it works with knowledge of the language. We try both methods separately in order to be able to use either lemmas or stems for the later analysis and compare the results</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#stemming an lemmatization</span>
<span class="c1">#https://likegeeks.com/nlp-tutorial-using-python-nltk/</span>
<span class="c1">#https://pythonprogramming.net/stemming-nltk-tutorial/?completed=/stop-words-nltk-tutorial/</span>
<span class="kn">from</span> <span class="nn">nltk.stem</span> <span class="k">import</span> <span class="n">PorterStemmer</span>
<span class="kn">from</span> <span class="nn">nltk.stem</span> <span class="k">import</span> <span class="n">WordNetLemmatizer</span>
<span class="n">lm</span> <span class="o">=</span> <span class="n">WordNetLemmatizer</span><span class="p">()</span>
<span class="n">ps</span> <span class="o">=</span> <span class="n">PorterStemmer</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">stemming</span><span class="p">(</span><span class="n">course_list</span><span class="p">,</span><span class="n">wordlist</span><span class="o">=</span><span class="s2">&quot;cut_wordlist&quot;</span><span class="p">):</span>
<span class="n">processed_courses</span><span class="o">=</span> <span class="n">course_list</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="n">all_stems</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
<span class="n">all_lems</span><span class="o">=</span><span class="nb">set</span><span class="p">()</span>
<span class="k">for</span> <span class="n">course_id</span><span class="p">,</span> <span class="n">course</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">):</span>
<span class="n">words</span> <span class="o">=</span> <span class="n">course</span><span class="p">[</span><span class="n">wordlist</span><span class="p">]</span>
<span class="n">course_stems</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">course_lems</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">words</span><span class="p">:</span>
<span class="n">course_stems</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ps</span><span class="o">.</span><span class="n">stem</span><span class="p">(</span><span class="n">word</span><span class="p">))</span>
<span class="n">course_lems</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lm</span><span class="o">.</span><span class="n">lemmatize</span><span class="p">(</span><span class="n">word</span><span class="p">))</span>
<span class="n">processed_courses</span><span class="p">[</span><span class="n">course_id</span><span class="p">][</span><span class="s1">&#39;stems&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">course_stems</span>
<span class="n">processed_courses</span><span class="p">[</span><span class="n">course_id</span><span class="p">][</span><span class="s1">&#39;lems&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">course_lems</span>
<span class="n">all_stems</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">course_stems</span><span class="p">)</span>
<span class="n">all_lems</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">course_lems</span><span class="p">)</span>
<span class="k">return</span> <span class="n">processed_courses</span><span class="p">,</span> <span class="n">all_stems</span><span class="p">,</span><span class="n">all_lems</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">processed_courses</span><span class="p">,</span><span class="n">stems</span><span class="p">,</span><span class="n">lems</span><span class="o">=</span><span class="n">stemming</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="Add-bigrams">Add bigrams<a class="anchor-link" href="#Add-bigrams">&#182;</a></h4><p><strong>Why:</strong> Even though each single word always provides some meaning, groups of words could give more information. That is because often concepts or ideas are not only described in one word. (e.g. social network). So we hope to win some precision by using bigrams on the lemmas.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">bigrams</span><span class="p">(</span><span class="n">course_list</span><span class="p">,</span><span class="n">wordlist</span><span class="o">=</span><span class="s2">&quot;lems&quot;</span><span class="p">):</span>
<span class="n">processed_courses</span><span class="o">=</span> <span class="n">course_list</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="n">all_bigrams</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
<span class="k">for</span> <span class="n">course_id</span><span class="p">,</span> <span class="n">course</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">):</span>
<span class="n">words</span> <span class="o">=</span> <span class="n">course</span><span class="p">[</span><span class="n">wordlist</span><span class="p">]</span>
<span class="n">course_bigrams</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">nltk</span><span class="o">.</span><span class="n">bigrams</span><span class="p">(</span><span class="n">words</span><span class="p">))</span>
<span class="n">processed_courses</span><span class="p">[</span><span class="n">course_id</span><span class="p">][</span><span class="s1">&#39;bigrams&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">course_bigrams</span>
<span class="n">all_bigrams</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">course_bigrams</span><span class="p">)</span>
<span class="k">return</span> <span class="n">processed_courses</span><span class="p">,</span> <span class="n">all_bigrams</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">processed_courses</span><span class="p">,</span><span class="n">bigrams</span><span class="o">=</span><span class="n">bigrams</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">processed_courses</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt output_prompt">Out[16]:</div>
<div class="output_text output_subarea output_execute_result">
<pre>{&#39;bigrams&#39;: [(&#39;latest&#39;, &#39;development&#39;),
(&#39;development&#39;, &#39;processing&#39;),
(&#39;processing&#39;, &#39;generation&#39;),
(&#39;generation&#39;, &#39;organic&#39;),
(&#39;organic&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;discussed&#39;),
(&#39;discussed&#39;, &#39;nanocomposites&#39;),
(&#39;nanocomposites&#39;, &#39;adaptive&#39;),
(&#39;adaptive&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;biocomposites&#39;),
(&#39;biocomposites&#39;, &#39;presented&#39;),
(&#39;presented&#39;, &#39;product&#39;),
(&#39;product&#39;, &#39;development&#39;),
(&#39;development&#39;, &#39;cost&#39;),
(&#39;cost&#39;, &#39;study&#39;),
(&#39;study&#39;, &#39;market&#39;),
(&#39;market&#39;, &#39;practiced&#39;),
(&#39;practiced&#39;, &#39;team&#39;),
(&#39;team&#39;, &#39;work&#39;),
(&#39;work&#39;, &#39;basic&#39;),
(&#39;basic&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;compositesdesign&#39;),
(&#39;compositesdesign&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;structure&#39;),
(&#39;structure&#39;, &#39;current&#39;),
(&#39;current&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;force&#39;),
(&#39;force&#39;, &#39;keywords&#39;),
(&#39;keywords&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;application&#39;),
(&#39;application&#39;, &#39;nanocomposites&#39;),
(&#39;nanocomposites&#39;, &#39;biocomposites&#39;),
(&#39;biocomposites&#39;, &#39;adaptive&#39;),
(&#39;adaptive&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;cost&#39;),
(&#39;cost&#39;, &#39;prerequisite&#39;),
(&#39;prerequisite&#39;, &#39;required&#39;),
(&#39;required&#39;, &#39;notion&#39;),
(&#39;notion&#39;, &#39;polymer&#39;),
(&#39;polymer&#39;, &#39;recommended&#39;),
(&#39;recommended&#39;, &#39;polymer&#39;),
(&#39;polymer&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;outcome&#39;),
(&#39;outcome&#39;, &#39;propose&#39;),
(&#39;propose&#39;, &#39;suitable&#39;),
(&#39;suitable&#39;, &#39;production&#39;),
(&#39;production&#39;, &#39;performance&#39;),
(&#39;performance&#39;, &#39;criterion&#39;),
(&#39;criterion&#39;, &#39;production&#39;),
(&#39;production&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;basic&#39;),
(&#39;basic&#39;, &#39;equation&#39;),
(&#39;equation&#39;, &#39;process&#39;),
(&#39;process&#39;, &#39;mechanical&#39;),
(&#39;mechanical&#39;, &#39;property&#39;),
(&#39;property&#39;, &#39;modelling&#39;),
(&#39;modelling&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;main&#39;),
(&#39;main&#39;, &#39;type&#39;),
(&#39;type&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;application&#39;),
(&#39;application&#39;, &#39;transversal&#39;),
(&#39;transversal&#39;, &#39;skill&#39;),
(&#39;skill&#39;, &#39;work&#39;),
(&#39;work&#39;, &#39;methodology&#39;),
(&#39;methodology&#39;, &#39;general&#39;),
(&#39;general&#39;, &#39;domain&#39;),
(&#39;domain&#39;, &#39;specific&#39;),
(&#39;specific&#39;, &#39;resource&#39;),
(&#39;resource&#39;, &#39;toolscommunicate&#39;),
(&#39;toolscommunicate&#39;, &#39;effectively&#39;),
(&#39;effectively&#39;, &#39;professional&#39;),
(&#39;professional&#39;, &#39;performance&#39;),
(&#39;performance&#39;, &#39;team&#39;),
(&#39;team&#39;, &#39;receive&#39;),
(&#39;receive&#39;, &#39;respond&#39;),
(&#39;respond&#39;, &#39;appropriately&#39;),
(&#39;appropriately&#39;, &#39;feedback&#39;),
(&#39;feedback&#39;, &#39;teaching&#39;),
(&#39;teaching&#39;, &#39;cathedra&#39;),
(&#39;cathedra&#39;, &#39;invited&#39;),
(&#39;invited&#39;, &#39;speaker&#39;),
(&#39;speaker&#39;, &#39;group&#39;),
(&#39;group&#39;, &#39;session&#39;),
(&#39;session&#39;, &#39;exercise&#39;),
(&#39;exercise&#39;, &#39;work&#39;),
(&#39;work&#39;, &#39;project&#39;),
(&#39;project&#39;, &#39;expected&#39;),
(&#39;expected&#39;, &#39;activity&#39;),
(&#39;activity&#39;, &#39;attendance&#39;),
(&#39;attendance&#39;, &#39;lecture&#39;),
(&#39;lecture&#39;, &#39;composite&#39;),
(&#39;composite&#39;, &#39;part&#39;),
(&#39;part&#39;, &#39;bibliography&#39;),
(&#39;bibliography&#39;, &#39;search&#39;),
(&#39;search&#39;, &#39;assessment&#39;),
(&#39;assessment&#39;, &#39;written&#39;),
(&#39;written&#39;, &#39;exam&#39;),
(&#39;exam&#39;, &#39;report&#39;),
(&#39;report&#39;, &#39;oral&#39;),
(&#39;oral&#39;, &#39;presentation&#39;),
(&#39;presentation&#39;, &#39;class&#39;)],
&#39;courseId&#39;: &#39;MSE-440&#39;,
&#39;cut_wordlist&#39;: [&#39;latest&#39;,
&#39;developments&#39;,
&#39;processing&#39;,
&#39;generations&#39;,
&#39;organic&#39;,
&#39;composites&#39;,
&#39;discussed&#39;,
&#39;nanocomposites&#39;,
&#39;adaptive&#39;,
&#39;composites&#39;,
&#39;biocomposites&#39;,
&#39;presented&#39;,
&#39;product&#39;,
&#39;development&#39;,
&#39;cost&#39;,
&#39;study&#39;,
&#39;markets&#39;,
&#39;practiced&#39;,
&#39;team&#39;,
&#39;work&#39;,
&#39;basics&#39;,
&#39;composite&#39;,
&#39;compositesdesign&#39;,
&#39;composite&#39;,
&#39;structures&#39;,
&#39;current&#39;,
&#39;composites&#39;,
&#39;forces&#39;,
&#39;keywords&#39;,
&#39;composites&#39;,
&#39;applications&#39;,
&#39;nanocomposites&#39;,
&#39;biocomposites&#39;,
&#39;adaptive&#39;,
&#39;composites&#39;,
&#39;cost&#39;,
&#39;prerequisites&#39;,
&#39;required&#39;,
&#39;notion&#39;,
&#39;polymers&#39;,
&#39;recommended&#39;,
&#39;polymer&#39;,
&#39;composites&#39;,
&#39;outcomes&#39;,
&#39;propose&#39;,
&#39;suitable&#39;,
&#39;production&#39;,
&#39;performance&#39;,
&#39;criteria&#39;,
&#39;production&#39;,
&#39;composite&#39;,
&#39;basic&#39;,
&#39;equations&#39;,
&#39;process&#39;,
&#39;mechanical&#39;,
&#39;properties&#39;,
&#39;modelling&#39;,
&#39;composite&#39;,
&#39;main&#39;,
&#39;types&#39;,
&#39;composite&#39;,
&#39;applications&#39;,
&#39;transversal&#39;,
&#39;skills&#39;,
&#39;work&#39;,
&#39;methodology&#39;,
&#39;general&#39;,
&#39;domain&#39;,
&#39;specific&#39;,
&#39;resources&#39;,
&#39;toolscommunicate&#39;,
&#39;effectively&#39;,
&#39;professionals&#39;,
&#39;performance&#39;,
&#39;team&#39;,
&#39;receive&#39;,
&#39;respond&#39;,
&#39;appropriately&#39;,
&#39;feedback&#39;,
&#39;teaching&#39;,
&#39;cathedra&#39;,
&#39;invited&#39;,
&#39;speakers&#39;,
&#39;group&#39;,
&#39;sessions&#39;,
&#39;exercises&#39;,
&#39;work&#39;,
&#39;project&#39;,
&#39;expected&#39;,
&#39;activities&#39;,
&#39;attendance&#39;,
&#39;lectures&#39;,
&#39;composite&#39;,
&#39;part&#39;,
&#39;bibliography&#39;,
&#39;search&#39;,
&#39;assessment&#39;,
&#39;written&#39;,
&#39;exam&#39;,
&#39;report&#39;,
&#39;oral&#39;,
&#39;presentation&#39;,
&#39;class&#39;],
&#39;description&#39;: &#34;The latest developments in processing and the novel generations of organic composites are discussed. Nanocomposites, adaptive composites and biocomposites are presented. Product development, cost analysis and study of new markets are practiced in team work. Content Basics of composite materialsConstituentsProcessing of compositesDesign of composite structures\xa0Current developmentNanocomposites Textile compositesBiocompositesAdaptive composites\xa0ApplicationsDriving forces and marketsCost analysisAerospaceAutomotiveSport Keywords Composites - Applications - Nanocomposites - Biocomposites - Adaptive composites - Design - Cost Learning Prerequisites Required courses Notion of polymers Recommended courses Polymer Composites Learning Outcomes By the end of the course, the student must be able to: Propose suitable design, production and performance criteria for the production of a composite partApply the basic equations for process and mechanical properties modelling for composite materialsDiscuss the main types of composite applications Transversal skills Use a work methodology appropriate to the task.Use both general and domain specific IT resources and toolsCommunicate effectively with professionals from other disciplines.Evaluate one&#39;s own performance in the team, receive and respond appropriately to feedback. Teaching methods Ex cathedra and invited speakers Group sessions with exercises or work on the project Expected student activities Attendance at lectures Design of a composite part, bibliography search \xa0 Assessment methods Written exam report and oral presentation in class&#34;,
&#39;lems&#39;: [&#39;latest&#39;,
&#39;development&#39;,
&#39;processing&#39;,
&#39;generation&#39;,
&#39;organic&#39;,
&#39;composite&#39;,
&#39;discussed&#39;,
&#39;nanocomposites&#39;,
&#39;adaptive&#39;,
&#39;composite&#39;,
&#39;biocomposites&#39;,
&#39;presented&#39;,
&#39;product&#39;,
&#39;development&#39;,
&#39;cost&#39;,
&#39;study&#39;,
&#39;market&#39;,
&#39;practiced&#39;,
&#39;team&#39;,
&#39;work&#39;,
&#39;basic&#39;,
&#39;composite&#39;,
&#39;compositesdesign&#39;,
&#39;composite&#39;,
&#39;structure&#39;,
&#39;current&#39;,
&#39;composite&#39;,
&#39;force&#39;,
&#39;keywords&#39;,
&#39;composite&#39;,
&#39;application&#39;,
&#39;nanocomposites&#39;,
&#39;biocomposites&#39;,
&#39;adaptive&#39;,
&#39;composite&#39;,
&#39;cost&#39;,
&#39;prerequisite&#39;,
&#39;required&#39;,
&#39;notion&#39;,
&#39;polymer&#39;,
&#39;recommended&#39;,
&#39;polymer&#39;,
&#39;composite&#39;,
&#39;outcome&#39;,
&#39;propose&#39;,
&#39;suitable&#39;,
&#39;production&#39;,
&#39;performance&#39;,
&#39;criterion&#39;,
&#39;production&#39;,
&#39;composite&#39;,
&#39;basic&#39;,
&#39;equation&#39;,
&#39;process&#39;,
&#39;mechanical&#39;,
&#39;property&#39;,
&#39;modelling&#39;,
&#39;composite&#39;,
&#39;main&#39;,
&#39;type&#39;,
&#39;composite&#39;,
&#39;application&#39;,
&#39;transversal&#39;,
&#39;skill&#39;,
&#39;work&#39;,
&#39;methodology&#39;,
&#39;general&#39;,
&#39;domain&#39;,
&#39;specific&#39;,
&#39;resource&#39;,
&#39;toolscommunicate&#39;,
&#39;effectively&#39;,
&#39;professional&#39;,
&#39;performance&#39;,
&#39;team&#39;,
&#39;receive&#39;,
&#39;respond&#39;,
&#39;appropriately&#39;,
&#39;feedback&#39;,
&#39;teaching&#39;,
&#39;cathedra&#39;,
&#39;invited&#39;,
&#39;speaker&#39;,
&#39;group&#39;,
&#39;session&#39;,
&#39;exercise&#39;,
&#39;work&#39;,
&#39;project&#39;,
&#39;expected&#39;,
&#39;activity&#39;,
&#39;attendance&#39;,
&#39;lecture&#39;,
&#39;composite&#39;,
&#39;part&#39;,
&#39;bibliography&#39;,
&#39;search&#39;,
&#39;assessment&#39;,
&#39;written&#39;,
&#39;exam&#39;,
&#39;report&#39;,
&#39;oral&#39;,
&#39;presentation&#39;,
&#39;class&#39;],
&#39;name&#39;: &#39;Composites technology&#39;,
&#39;stems&#39;: [&#39;latest&#39;,
&#39;develop&#39;,
&#39;process&#39;,
&#39;gener&#39;,
&#39;organ&#39;,
&#39;composit&#39;,
&#39;discuss&#39;,
&#39;nanocomposit&#39;,
&#39;adapt&#39;,
&#39;composit&#39;,
&#39;biocomposit&#39;,
&#39;present&#39;,
&#39;product&#39;,
&#39;develop&#39;,
&#39;cost&#39;,
&#39;studi&#39;,
&#39;market&#39;,
&#39;practic&#39;,
&#39;team&#39;,
&#39;work&#39;,
&#39;basic&#39;,
&#39;composit&#39;,
&#39;compositesdesign&#39;,
&#39;composit&#39;,
&#39;structur&#39;,
&#39;current&#39;,
&#39;composit&#39;,
&#39;forc&#39;,
&#39;keyword&#39;,
&#39;composit&#39;,
&#39;applic&#39;,
&#39;nanocomposit&#39;,
&#39;biocomposit&#39;,
&#39;adapt&#39;,
&#39;composit&#39;,
&#39;cost&#39;,
&#39;prerequisit&#39;,
&#39;requir&#39;,
&#39;notion&#39;,
&#39;polym&#39;,
&#39;recommend&#39;,
&#39;polym&#39;,
&#39;composit&#39;,
&#39;outcom&#39;,
&#39;propos&#39;,
&#39;suitabl&#39;,
&#39;product&#39;,
&#39;perform&#39;,
&#39;criteria&#39;,
&#39;product&#39;,
&#39;composit&#39;,
&#39;basic&#39;,
&#39;equat&#39;,
&#39;process&#39;,
&#39;mechan&#39;,
&#39;properti&#39;,
&#39;model&#39;,
&#39;composit&#39;,
&#39;main&#39;,
&#39;type&#39;,
&#39;composit&#39;,
&#39;applic&#39;,
&#39;transvers&#39;,
&#39;skill&#39;,
&#39;work&#39;,
&#39;methodolog&#39;,
&#39;gener&#39;,
&#39;domain&#39;,
&#39;specif&#39;,
&#39;resourc&#39;,
&#39;toolscommun&#39;,
&#39;effect&#39;,
&#39;profession&#39;,
&#39;perform&#39;,
&#39;team&#39;,
&#39;receiv&#39;,
&#39;respond&#39;,
&#39;appropri&#39;,
&#39;feedback&#39;,
&#39;teach&#39;,
&#39;cathedra&#39;,
&#39;invit&#39;,
&#39;speaker&#39;,
&#39;group&#39;,
&#39;session&#39;,
&#39;exercis&#39;,
&#39;work&#39;,
&#39;project&#39;,
&#39;expect&#39;,
&#39;activ&#39;,
&#39;attend&#39;,
&#39;lectur&#39;,
&#39;composit&#39;,
&#39;part&#39;,
&#39;bibliographi&#39;,
&#39;search&#39;,
&#39;assess&#39;,
&#39;written&#39;,
&#39;exam&#39;,
&#39;report&#39;,
&#39;oral&#39;,
&#39;present&#39;,
&#39;class&#39;],
&#39;wordlist&#39;: [&#39;latest&#39;,
&#39;developments&#39;,
&#39;processing&#39;,
&#39;generations&#39;,
&#39;organic&#39;,
&#39;composites&#39;,
&#39;discussed&#39;,
&#39;nanocomposites&#39;,
&#39;adaptive&#39;,
&#39;composites&#39;,
&#39;biocomposites&#39;,
&#39;presented&#39;,
&#39;product&#39;,
&#39;development&#39;,
&#39;cost&#39;,
&#39;analysis&#39;,
&#39;study&#39;,
&#39;markets&#39;,
&#39;practiced&#39;,
&#39;team&#39;,
&#39;work&#39;,
&#39;content&#39;,
&#39;basics&#39;,
&#39;composite&#39;,
&#39;materialsconstituentsprocessing&#39;,
&#39;compositesdesign&#39;,
&#39;composite&#39;,
&#39;structures&#39;,
&#39;current&#39;,
&#39;developmentnanocomposites&#39;,
&#39;textile&#39;,
&#39;compositesbiocompositesadaptive&#39;,
&#39;composites&#39;,
&#39;applicationsdriving&#39;,
&#39;forces&#39;,
&#39;marketscost&#39;,
&#39;analysisaerospaceautomotivesport&#39;,
&#39;keywords&#39;,
&#39;composites&#39;,
&#39;applications&#39;,
&#39;nanocomposites&#39;,
&#39;biocomposites&#39;,
&#39;adaptive&#39;,
&#39;composites&#39;,
&#39;design&#39;,
&#39;cost&#39;,
&#39;learning&#39;,
&#39;prerequisites&#39;,
&#39;required&#39;,
&#39;courses&#39;,
&#39;notion&#39;,
&#39;polymers&#39;,
&#39;recommended&#39;,
&#39;courses&#39;,
&#39;polymer&#39;,
&#39;composites&#39;,
&#39;learning&#39;,
&#39;outcomes&#39;,
&#39;end&#39;,
&#39;student&#39;,
&#39;propose&#39;,
&#39;suitable&#39;,
&#39;design&#39;,
&#39;production&#39;,
&#39;performance&#39;,
&#39;criteria&#39;,
&#39;production&#39;,
&#39;composite&#39;,
&#39;partapply&#39;,
&#39;basic&#39;,
&#39;equations&#39;,
&#39;process&#39;,
&#39;mechanical&#39;,
&#39;properties&#39;,
&#39;modelling&#39;,
&#39;composite&#39;,
&#39;materialsdiscuss&#39;,
&#39;main&#39;,
&#39;types&#39;,
&#39;composite&#39;,
&#39;applications&#39;,
&#39;transversal&#39;,
&#39;skills&#39;,
&#39;work&#39;,
&#39;methodology&#39;,
&#39;general&#39;,
&#39;domain&#39;,
&#39;specific&#39;,
&#39;resources&#39;,
&#39;toolscommunicate&#39;,
&#39;effectively&#39;,
&#39;professionals&#39;,
&#39;performance&#39;,
&#39;team&#39;,
&#39;receive&#39;,
&#39;respond&#39;,
&#39;appropriately&#39;,
&#39;feedback&#39;,
&#39;teaching&#39;,
&#39;methods&#39;,
&#39;cathedra&#39;,
&#39;invited&#39;,
&#39;speakers&#39;,
&#39;group&#39;,
&#39;sessions&#39;,
&#39;exercises&#39;,
&#39;work&#39;,
&#39;project&#39;,
&#39;expected&#39;,
&#39;student&#39;,
&#39;activities&#39;,
&#39;attendance&#39;,
&#39;lectures&#39;,
&#39;design&#39;,
&#39;composite&#39;,
&#39;part&#39;,
&#39;bibliography&#39;,
&#39;search&#39;,
&#39;assessment&#39;,
&#39;methods&#39;,
&#39;written&#39;,
&#39;exam&#39;,
&#39;report&#39;,
&#39;oral&#39;,
&#39;presentation&#39;,
&#39;class&#39;]}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="2.--Print-the-terms-in-the-pre-processed-description-of-the-IX-class-in-alphabetical-order.">2. Print the terms in the pre-processed description of the IX class in alphabetical order.<a class="anchor-link" href="#2.--Print-the-terms-in-the-pre-processed-description-of-the-IX-class-in-alphabetical-order.">&#182;</a></h4><p>The fisrt array shows the soted stems the second one the sorted lemmas, the last one the sorted bigrams</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#print IX class</span>
<span class="n">IX_class</span> <span class="o">=</span> <span class="nb">next</span><span class="p">((</span><span class="n">item</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">processed_courses</span> <span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="s2">&quot;courseId&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;COM-308&quot;</span><span class="p">))</span>
<span class="c1">#print terms, in our case stems..?</span>
<span class="n">IX_stems</span><span class="o">=</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">IX_class</span><span class="p">[</span><span class="s1">&#39;stems&#39;</span><span class="p">])))</span>
<span class="n">IX_stems</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">IX_stems</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">IX_lems</span><span class="o">=</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">IX_class</span><span class="p">[</span><span class="s1">&#39;lems&#39;</span><span class="p">])))</span>
<span class="n">IX_lems</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">IX_lems</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[&#39;acquir&#39;, &#39;activ&#39;, &#39;ad&#39;, &#39;advertis&#39;, &#39;algebra&#39;, &#39;algorithm&#39;, &#39;analyt&#39;, &#39;applic&#39;, &#39;assess&#39;, &#39;auction&#39;, &#39;balanc&#39;, &#39;base&#39;, &#39;basic&#39;, &#39;cathedra&#39;, &#39;chain&#39;, &#39;class&#39;, &#39;cloud&#39;, &#39;cluster&#39;, &#39;collect&#39;, &#39;combin&#39;, &#39;commun&#39;, &#39;comput&#39;, &#39;concept&#39;, &#39;concret&#39;, &#39;coverag&#39;, &#39;current&#39;, &#39;data&#39;, &#39;dataset&#39;, &#39;decad&#39;, &#39;dedic&#39;, &#39;design&#39;, &#39;detect&#39;, &#39;dimension&#39;, &#39;draw&#39;, &#39;effect&#39;, &#39;effici&#39;, &#39;exam&#39;, &#39;expect&#39;, &#39;explor&#39;, &#39;field&#39;, &#39;final&#39;, &#39;foundat&#39;, &#39;framework&#39;, &#39;function&#39;, &#39;fundament&#39;, &#39;good&#39;, &#39;graph&#39;, &#39;hadoop&#39;, &#39;homework&#39;, &#39;import&#39;, &#39;inform&#39;, &#39;infrastructur&#39;, &#39;inspir&#39;, &#39;internet&#39;, &#39;java&#39;, &#39;key&#39;, &#39;keyword&#39;, &#39;knowledg&#39;, &#39;lab&#39;, &#39;laboratori&#39;, &#39;lectur&#39;, &#39;linear&#39;, &#39;machin&#39;, &#39;main&#39;, &#39;markov&#39;, &#39;materi&#39;, &#39;media&#39;, &#39;midterm&#39;, &#39;mine&#39;, &#39;model&#39;, &#39;network&#39;, &#39;number&#39;, &#39;onlin&#39;, &#39;outcom&#39;, &#39;past&#39;, &#39;practic&#39;, &#39;prerequisit&#39;, &#39;problem&#39;, &#39;project&#39;, &#39;provid&#39;, &#39;question&#39;, &#39;real&#39;, &#39;recommend&#39;, &#39;reduct&#39;, &#39;relat&#39;, &#39;requir&#39;, &#39;retriev&#39;, &#39;search&#39;, &#39;servic&#39;, &#39;session&#39;, &#39;social&#39;, &#39;spark&#39;, &#39;specif&#39;, &#39;start&#39;, &#39;statist&#39;, &#39;stochast&#39;, &#39;stream&#39;, &#39;structur&#39;, &#39;teach&#39;, &#39;techniqu&#39;, &#39;theoret&#39;, &#39;theori&#39;, &#39;topic&#39;, &#39;typic&#39;, &#39;ubiquit&#39;, &#39;user&#39;, &#39;weekli&#39;, &#39;work&#39;, &#39;world&#39;]
[&#39;acquired&#39;, &#39;activity&#39;, &#39;ad&#39;, &#39;advertisement&#39;, &#39;algebra&#39;, &#39;algorithm&#39;, &#39;analytics&#39;, &#39;application&#39;, &#39;assessment&#39;, &#39;auction&#39;, &#39;balance&#39;, &#39;based&#39;, &#39;basic&#39;, &#39;cathedra&#39;, &#39;chain&#39;, &#39;class&#39;, &#39;cloud&#39;, &#39;clustering&#39;, &#39;collection&#39;, &#39;combination&#39;, &#39;communication&#39;, &#39;community&#39;, &#39;computing&#39;, &#39;concept&#39;, &#39;concrete&#39;, &#39;coverage&#39;, &#39;current&#39;, &#39;data&#39;, &#39;datasets&#39;, &#39;decade&#39;, &#39;dedicated&#39;, &#39;designed&#39;, &#39;detection&#39;, &#39;dimensionality&#39;, &#39;draw&#39;, &#39;effectiveness&#39;, &#39;efficiency&#39;, &#39;exam&#39;, &#39;expected&#39;, &#39;explore&#39;, &#39;explores&#39;, &#39;field&#39;, &#39;final&#39;, &#39;foundational&#39;, &#39;framework&#39;, &#39;function&#39;, &#39;fundamental&#39;, &#39;good&#39;, &#39;graph&#39;, &#39;hadoop&#39;, &#39;homework&#39;, &#39;important&#39;, &#39;information&#39;, &#39;infrastructure&#39;, &#39;inspired&#39;, &#39;internet&#39;, &#39;java&#39;, &#39;key&#39;, &#39;keywords&#39;, &#39;knowledge&#39;, &#39;lab&#39;, &#39;laboratory&#39;, &#39;lecture&#39;, &#39;linear&#39;, &#39;machine&#39;, &#39;main&#39;, &#39;markov&#39;, &#39;material&#39;, &#39;medium&#39;, &#39;midterm&#39;, &#39;mining&#39;, &#39;model&#39;, &#39;modeling&#39;, &#39;network&#39;, &#39;networking&#39;, &#39;number&#39;, &#39;online&#39;, &#39;outcome&#39;, &#39;past&#39;, &#39;practical&#39;, &#39;practice&#39;, &#39;prerequisite&#39;, &#39;problem&#39;, &#39;project&#39;, &#39;provide&#39;, &#39;question&#39;, &#39;real&#39;, &#39;recommended&#39;, &#39;recommender&#39;, &#39;reduction&#39;, &#39;related&#39;, &#39;required&#39;, &#39;retrieval&#39;, &#39;search&#39;, &#39;service&#39;, &#39;session&#39;, &#39;social&#39;, &#39;spark&#39;, &#39;specifically&#39;, &#39;start&#39;, &#39;statistic&#39;, &#39;stochastic&#39;, &#39;stream&#39;, &#39;structure&#39;, &#39;teaching&#39;, &#39;technique&#39;, &#39;theoretical&#39;, &#39;theory&#39;, &#39;topic&#39;, &#39;typical&#39;, &#39;ubiquitous&#39;, &#39;user&#39;, &#39;weekly&#39;, &#39;work&#39;, &#39;world&#39;]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">IX_bigrams</span><span class="o">=</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">IX_class</span><span class="p">[</span><span class="s1">&#39;bigrams&#39;</span><span class="p">])))</span>
<span class="n">IX_bigrams</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">IX_bigrams</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[(&#39;acquired&#39;, &#39;lecture&#39;), (&#39;activity&#39;, &#39;lecture&#39;), (&#39;ad&#39;, &#39;auction&#39;), (&#39;advertisement&#39;, &#39;class&#39;), (&#39;algebra&#39;, &#39;algorithm&#39;), (&#39;algebra&#39;, &#39;markov&#39;), (&#39;algorithm&#39;, &#39;data&#39;), (&#39;algorithm&#39;, &#39;statistic&#39;), (&#39;analytics&#39;, &#39;application&#39;), (&#39;analytics&#39;, &#39;collection&#39;), (&#39;application&#39;, &#39;inspired&#39;), (&#39;application&#39;, &#39;social&#39;), (&#39;assessment&#39;, &#39;project&#39;), (&#39;auction&#39;, &#39;prerequisite&#39;), (&#39;auction&#39;, &#39;provide&#39;), (&#39;balance&#39;, &#39;foundational&#39;), (&#39;based&#39;, &#39;hadoop&#39;), (&#39;based&#39;, &#39;number&#39;), (&#39;basic&#39;, &#39;linear&#39;), (&#39;basic&#39;, &#39;material&#39;), (&#39;basic&#39;, &#39;model&#39;), (&#39;cathedra&#39;, &#39;homework&#39;), (&#39;chain&#39;, &#39;java&#39;), (&#39;class&#39;, &#39;balance&#39;), (&#39;class&#39;, &#39;explores&#39;), (&#39;class&#39;, &#39;lab&#39;), (&#39;cloud&#39;, &#39;service&#39;), (&#39;clustering&#39;, &#39;community&#39;), (&#39;collection&#39;, &#39;modeling&#39;), (&#39;combination&#39;, &#39;theoretical&#39;), (&#39;communication&#39;, &#39;recommended&#39;), (&#39;community&#39;, &#39;detection&#39;), (&#39;computing&#39;, &#39;ad&#39;), (&#39;computing&#39;, &#39;online&#39;), (&#39;concept&#39;, &#39;lab&#39;), (&#39;concept&#39;, &#39;start&#39;), (&#39;concrete&#39;, &#39;problem&#39;), (&#39;coverage&#39;, &#39;main&#39;), (&#39;current&#39;, &#39;practice&#39;), (&#39;data&#39;, &#39;mining&#39;), (&#39;data&#39;, &#39;online&#39;), (&#39;data&#39;, &#39;structure&#39;), (&#39;datasets&#39;, &#39;class&#39;), (&#39;datasets&#39;, &#39;real&#39;), (&#39;decade&#39;, &#39;class&#39;), (&#39;dedicated&#39;, &#39;infrastructure&#39;), (&#39;designed&#39;, &#39;explore&#39;), (&#39;detection&#39;, &#39;model&#39;), (&#39;detection&#39;, &#39;topic&#39;), (&#39;dimensionality&#39;, &#39;reduction&#39;), (&#39;draw&#39;, &#39;knowledge&#39;), (&#39;effectiveness&#39;, &#39;machine&#39;), (&#39;efficiency&#39;, &#39;effectiveness&#39;), (&#39;expected&#39;, &#39;activity&#39;), (&#39;explore&#39;, &#39;basic&#39;), (&#39;explore&#39;, &#39;data&#39;), (&#39;explore&#39;, &#39;datasets&#39;), (&#39;explore&#39;, &#39;practical&#39;), (&#39;explores&#39;, &#39;number&#39;), (&#39;field&#39;, &#39;application&#39;), (&#39;final&#39;, &#39;exam&#39;), (&#39;foundational&#39;, &#39;basic&#39;), (&#39;framework&#39;, &#39;model&#39;), (&#39;function&#39;, &#39;online&#39;), (&#39;fundamental&#39;, &#39;concept&#39;), (&#39;good&#39;, &#39;coverage&#39;), (&#39;graph&#39;, &#39;linear&#39;), (&#39;graph&#39;, &#39;theory&#39;), (&#39;hadoop&#39;, &#39;recommender&#39;), (&#39;hadoop&#39;, &#39;spark&#39;), (&#39;homework&#39;, &#39;explore&#39;), (&#39;homework&#39;, &#39;lab&#39;), (&#39;important&#39;, &#39;concept&#39;), (&#39;information&#39;, &#39;network&#39;), (&#39;information&#39;, &#39;retrieval&#39;), (&#39;infrastructure&#39;, &#39;based&#39;), (&#39;inspired&#39;, &#39;current&#39;), (&#39;internet&#39;, &#39;analytics&#39;), (&#39;internet&#39;, &#39;cloud&#39;), (&#39;java&#39;, &#39;outcome&#39;), (&#39;key&#39;, &#39;function&#39;), (&#39;keywords&#39;, &#39;data&#39;), (&#39;knowledge&#39;, &#39;acquired&#39;), (&#39;lab&#39;, &#39;designed&#39;), (&#39;lab&#39;, &#39;draw&#39;), (&#39;lab&#39;, &#39;session&#39;), (&#39;laboratory&#39;, &#39;session&#39;), (&#39;lecture&#39;, &#39;assessment&#39;), (&#39;lecture&#39;, &#39;homework&#39;), (&#39;linear&#39;, &#39;algebra&#39;), (&#39;machine&#39;, &#39;social&#39;), (&#39;machine&#39;, &#39;technique&#39;), (&#39;main&#39;, &#39;data&#39;), (&#39;markov&#39;, &#39;chain&#39;), (&#39;material&#39;, &#39;algorithm&#39;), (&#39;material&#39;, &#39;weekly&#39;), (&#39;medium&#39;, &#39;combination&#39;), (&#39;midterm&#39;, &#39;final&#39;), (&#39;mining&#39;, &#39;analytics&#39;), (&#39;mining&#39;, &#39;machine&#39;), (&#39;mining&#39;, &#39;problem&#39;), (&#39;model&#39;, &#39;communication&#39;), (&#39;model&#39;, &#39;dimensionality&#39;), (&#39;model&#39;, &#39;fundamental&#39;), (&#39;model&#39;, &#39;information&#39;), (&#39;model&#39;, &#39;typical&#39;), (&#39;modeling&#39;, &#39;user&#39;), (&#39;network&#39;, &#39;recommender&#39;), (&#39;networking&#39;, &#39;hadoop&#39;), (&#39;networking&#39;, &#39;search&#39;), (&#39;networking&#39;, &#39;social&#39;), (&#39;number&#39;, &#39;datasets&#39;), (&#39;number&#39;, &#39;key&#39;), (&#39;online&#39;, &#39;ad&#39;), (&#39;online&#39;, &#39;efficiency&#39;), (&#39;online&#39;, &#39;framework&#39;), (&#39;online&#39;, &#39;service&#39;), (&#39;outcome&#39;, &#39;explore&#39;), (&#39;past&#39;, &#39;decade&#39;), (&#39;practical&#39;, &#39;question&#39;), (&#39;practice&#39;, &#39;internet&#39;), (&#39;prerequisite&#39;, &#39;required&#39;), (&#39;problem&#39;, &#39;online&#39;), (&#39;problem&#39;, &#39;teaching&#39;), (&#39;project&#39;, &#39;midterm&#39;), (&#39;provide&#39;, &#39;good&#39;), (&#39;question&#39;, &#39;based&#39;), (&#39;real&#39;, &#39;world&#39;), (&#39;recommended&#39;, &#39;basic&#39;), (&#39;recommender&#39;, &#39;clustering&#39;), (&#39;reduction&#39;, &#39;stream&#39;), (&#39;related&#39;, &#39;field&#39;), (&#39;required&#39;, &#39;stochastic&#39;), (&#39;retrieval&#39;, &#39;stream&#39;), (&#39;search&#39;, &#39;advertisement&#39;), (&#39;service&#39;, &#39;social&#39;), (&#39;service&#39;, &#39;specifically&#39;), (&#39;service&#39;, &#39;ubiquitous&#39;), (&#39;session&#39;, &#39;expected&#39;), (&#39;session&#39;, &#39;explore&#39;), (&#39;social&#39;, &#39;information&#39;), (&#39;social&#39;, &#39;medium&#39;), (&#39;social&#39;, &#39;networking&#39;), (&#39;spark&#39;, &#39;keywords&#39;), (&#39;specifically&#39;, &#39;social&#39;), (&#39;start&#39;, &#39;graph&#39;), (&#39;statistic&#39;, &#39;graph&#39;), (&#39;stochastic&#39;, &#39;model&#39;), (&#39;stream&#39;, &#39;computing&#39;), (&#39;structure&#39;, &#39;important&#39;), (&#39;teaching&#39;, &#39;cathedra&#39;), (&#39;technique&#39;, &#39;concrete&#39;), (&#39;theoretical&#39;, &#39;material&#39;), (&#39;theory&#39;, &#39;related&#39;), (&#39;topic&#39;, &#39;model&#39;), (&#39;typical&#39;, &#39;data&#39;), (&#39;ubiquitous&#39;, &#39;past&#39;), (&#39;user&#39;, &#39;data&#39;), (&#39;weekly&#39;, &#39;laboratory&#39;), (&#39;work&#39;, &#39;dedicated&#39;), (&#39;world&#39;, &#39;work&#39;)]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Exercise-4.2:-Term-document-matrix">Exercise 4.2: Term-document matrix<a class="anchor-link" href="#Exercise-4.2:-Term-document-matrix">&#182;</a></h2><p>Construct an M×N term-document matrix X, where M is the number of terms and N is thenumber of documents. The matrix X should besparse. You are not allowed to use libraries for this task (i.e., the computation of TF-IDF must be implemented by you.)</p>
<ol>
<li>Print the 15 terms in the description of the IX class with the highest TF-IDF scores.</li>
<li>Explain where the difference between the large scores and the small ones comes from.</li>
</ol>
<p><em>Hint: It is useful for this exercise and the rest of the lab to keep track of the mapping between
terms and their indices, and documents and their indices.</em></p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">Counter</span>
<span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">OrderedDict</span>
<span class="kn">import</span> <span class="nn">operator</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">scipy.sparse</span> <span class="k">import</span> <span class="n">csr_matrix</span>
<span class="c1"># compute tfidf and return the matrix and ordererd term list</span>
<span class="c1"># print highest terms of internet analysis description if needed</span>
<span class="k">def</span> <span class="nf">tfidf_procedure</span><span class="p">(</span><span class="n">terms</span><span class="p">,</span><span class="n">term_name</span><span class="p">,</span><span class="n">prin</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">terms</span><span class="p">)</span>
<span class="n">m</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">)</span>
<span class="n">TF_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">n</span><span class="p">,</span> <span class="n">m</span><span class="p">))</span>
<span class="n">term_list</span><span class="o">=</span><span class="nb">list</span><span class="p">(</span><span class="n">terms</span><span class="p">)</span>
<span class="n">term_list</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
<span class="n">n_ids</span> <span class="o">=</span> <span class="n">term_list</span>
<span class="n">m_ids</span> <span class="o">=</span> <span class="p">[</span><span class="n">d</span><span class="p">[</span><span class="s1">&#39;courseId&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">processed_courses</span><span class="p">]</span>
<span class="n">vals</span><span class="o">=</span><span class="p">[]</span>
<span class="n">cols</span><span class="o">=</span><span class="p">[]</span>
<span class="n">rows</span><span class="o">=</span><span class="p">[]</span>
<span class="c1">#TF-matrix</span>
<span class="k">for</span> <span class="n">course_id</span><span class="p">,</span> <span class="n">course</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">):</span>
<span class="n">c_terms</span> <span class="o">=</span> <span class="n">course</span><span class="p">[</span><span class="n">term_name</span><span class="p">]</span>
<span class="n">c_term_counter</span> <span class="o">=</span> <span class="n">Counter</span><span class="p">(</span><span class="n">c_terms</span><span class="p">)</span>
<span class="n">number_terms</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">c_terms</span><span class="p">)</span>
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">c_term_counter</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="c1">#get index of the term</span>
<span class="n">n_id</span> <span class="o">=</span> <span class="n">n_ids</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
<span class="n">TF_matrix</span><span class="p">[</span><span class="n">n_id</span><span class="p">][</span><span class="n">course_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
<span class="n">rows</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">n_id</span><span class="p">)</span>
<span class="n">cols</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">course_id</span><span class="p">)</span>
<span class="n">vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="c1">#IDF </span>
<span class="n">denom</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">apply_along_axis</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">count_nonzero</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">TF_matrix</span><span class="p">)</span>
<span class="n">IDF_vector</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">m</span> <span class="o">/</span> <span class="n">denom</span><span class="p">)</span>
<span class="n">TFIDF_matrix</span> <span class="o">=</span> <span class="n">TF_matrix</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">IDF_vector</span><span class="p">])</span><span class="o">.</span><span class="n">T</span>
<span class="c1">#1. Print the 15 terms in the description of the IX class with the highest TF-IDF scores.</span>
<span class="k">if</span> <span class="n">prin</span><span class="p">:</span>
<span class="n">IX_index</span> <span class="o">=</span> <span class="n">m_ids</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;COM-308&#39;</span><span class="p">)</span>
<span class="c1">#get the values for the course</span>
<span class="n">IX_TFIDF_col</span> <span class="o">=</span> <span class="n">TFIDF_matrix</span><span class="p">[:,</span><span class="n">IX_index</span><span class="p">]</span>
<span class="c1">#add all values hiogher zero and connect to a word/lemma/stem</span>
<span class="n">IX_TFIDF_vals</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">ind</span><span class="p">,</span> <span class="n">val</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">IX_TFIDF_col</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">val</span> <span class="o">&gt;</span> <span class="mf">0.0</span><span class="p">:</span>
<span class="k">continue</span>
<span class="n">IX_TFIDF_vals</span><span class="p">[</span><span class="n">n_ids</span><span class="p">[</span><span class="n">ind</span><span class="p">]]</span> <span class="o">=</span> <span class="n">val</span>
<span class="n">IX_TFIDF_vals_ordered</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">IX_TFIDF_vals</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span><span class="n">key</span> <span class="o">=</span> <span class="n">operator</span><span class="o">.</span><span class="n">itemgetter</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">reverse</span> <span class="o">=</span> <span class="kc">True</span><span class="p">))</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">IX_TFIDF_vals_ordered</span><span class="o">.</span><span class="n">items</span><span class="p">())[:</span><span class="mi">15</span><span class="p">]:</span>
<span class="nb">print</span> <span class="p">(</span><span class="n">item</span><span class="p">)</span>
<span class="k">return</span> <span class="n">TFIDF_matrix</span><span class="p">,</span> <span class="n">term_list</span><span class="p">,</span> <span class="n">n_ids</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#compare lemmas and stems</span>
<span class="n">TFIDF_matrix_lems</span><span class="p">,</span> <span class="n">term_list_lems</span><span class="p">,</span><span class="n">n_ids_lems</span> <span class="o">=</span> <span class="n">tfidf_procedure</span><span class="p">(</span><span class="n">lems</span><span class="p">,</span><span class="s2">&quot;lems&quot;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>(&#39;online&#39;, 17.459173278835436)
(&#39;social&#39;, 15.972915661495781)
(&#39;explore&#39;, 14.821635024260587)
(&#39;mining&#39;, 14.011468956326201)
(&#39;networking&#39;, 13.342038302383573)
(&#39;hadoop&#39;, 12.11356802645725)
(&#39;ad&#39;, 11.30263781024092)
(&#39;recommender&#39;, 11.30263781024092)
(&#39;service&#39;, 10.843310933578261)
(&#39;auction&#39;, 10.727273665337359)
(&#39;datasets&#39;, 10.280986562708939)
(&#39;internet&#39;, 10.280986562708939)
(&#39;stream&#39;, 9.340979304217468)
(&#39;data&#39;, 9.0809353857517241)
(&#39;analytics&#39;, 8.5300490880011388)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[21]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">TFIDF_matrix_stems</span><span class="p">,</span> <span class="n">term_list_stems</span><span class="p">,</span><span class="n">n_ids_stems</span> <span class="o">=</span> <span class="n">tfidf_procedure</span><span class="p">(</span><span class="n">stems</span><span class="p">,</span><span class="s2">&quot;stems&quot;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>(&#39;onlin&#39;, 17.459173278835436)
(&#39;social&#39;, 15.8320612766623)
(&#39;explor&#39;, 15.305258698373168)
(&#39;mine&#39;, 14.011468956326201)
(&#39;hadoop&#39;, 12.11356802645725)
(&#39;servic&#39;, 10.843310933578261)
(&#39;auction&#39;, 10.727273665337359)
(&#39;internet&#39;, 10.280986562708939)
(&#39;network&#39;, 9.3728477860972674)
(&#39;data&#39;, 9.0809353857517241)
(&#39;ad&#39;, 8.7040718419803991)
(&#39;dataset&#39;, 8.7040718419803991)
(&#39;stream&#39;, 8.5300490880011388)
(&#39;cluster&#39;, 7.7191188717848105)
(&#39;lab&#39;, 7.5474740675739316)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[22]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">TFIDF_matrix_bigrams</span><span class="p">,</span> <span class="n">term_list_bigrams</span><span class="p">,</span><span class="n">n_ids_bigrams</span> <span class="o">=</span> <span class="n">tfidf_procedure</span><span class="p">(</span><span class="n">bigrams</span><span class="p">,</span><span class="s2">&quot;bigrams&quot;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>((&#39;social&#39;, &#39;networking&#39;), 20.249793581365712)
((&#39;data&#39;, &#39;mining&#39;), 14.874515173681544)
((&#39;ad&#39;, &#39;auction&#39;), 13.49986238757714)
((&#39;clustering&#39;, &#39;community&#39;), 13.49986238757714)
((&#39;data&#39;, &#39;online&#39;), 13.49986238757714)
((&#39;online&#39;, &#39;service&#39;), 13.49986238757714)
((&#39;recommender&#39;, &#39;clustering&#39;), 13.49986238757714)
((&#39;stream&#39;, &#39;computing&#39;), 13.49986238757714)
((&#39;community&#39;, &#39;detection&#39;), 12.11356802645725)
((&#39;acquired&#39;, &#39;lecture&#39;), 6.7499311937885702)
((&#39;advertisement&#39;, &#39;class&#39;), 6.7499311937885702)
((&#39;algebra&#39;, &#39;algorithm&#39;), 6.7499311937885702)
((&#39;algebra&#39;, &#39;markov&#39;), 6.7499311937885702)
((&#39;algorithm&#39;, &#39;statistic&#39;), 6.7499311937885702)
((&#39;analytics&#39;, &#39;application&#39;), 6.7499311937885702)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>We can see that the stems and lemmas with the highest scores are rather similar only the order is a little different.</p>
<p>The bigrams show similar words as the methods above only they are followed by another word that seems to add informnation. Computing on bigrams took a little longer</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="2.-Explain-where-the-difference-between-the-large-scores-and-the-small-ones-comes-from">2. Explain where the difference between the large scores and the small ones comes from<a class="anchor-link" href="#2.-Explain-where-the-difference-between-the-large-scores-and-the-small-ones-comes-from">&#182;</a></h4><p>The TFIDF value indicates how often a word appears in a document combined with its appearance over all documents. So the words with high scores appear often in the Internet Analytics description while they appear rarely in other course desciptions.<br>
Words with the lowest scores are very common in the course descriptions but can only be found rarely (or not at all) in the Internet Analytics description.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Saving</span>
<span class="kn">from</span> <span class="nn">utils</span> <span class="k">import</span> <span class="n">save_pkl</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">TFIDF_matrix_stems</span><span class="p">,</span> <span class="s1">&#39;tfidf_s.pkl&#39;</span><span class="p">)</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">term_list_stems</span><span class="p">,</span> <span class="s1">&#39;stems.pkl&#39;</span><span class="p">)</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">processed_courses</span><span class="p">,</span> <span class="s1">&#39;courses.pkl&#39;</span><span class="p">)</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">TFIDF_matrix_lems</span><span class="p">,</span> <span class="s1">&#39;tfidf_l.pkl&#39;</span><span class="p">)</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">term_list_lems</span><span class="p">,</span> <span class="s1">&#39;lems.pkl&#39;</span><span class="p">)</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">TFIDF_matrix_bigrams</span><span class="p">,</span> <span class="s1">&#39;tfidf_b.pkl&#39;</span><span class="p">)</span>
<span class="n">save_pkl</span><span class="p">(</span><span class="n">term_list_stems</span><span class="p">,</span> <span class="s1">&#39;bigrams.pkl&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Exercise-4.3:-Document-similarity-search">Exercise 4.3: Document similarity search<a class="anchor-link" href="#Exercise-4.3:-Document-similarity-search">&#182;</a></h2><p>Search for "markov chains" and "facebook".</p>
<ol>
<li>Display the top five courses together with their similarity score for each query.</li>
<li>What do you think of the results? Give your intuition on what is happening.</li>
</ol>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#create query verctors </span>
<span class="c1">#lemmas</span>
<span class="n">markov_chain_l</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lems</span><span class="p">))</span>
<span class="n">markov_chain_l</span><span class="p">[</span><span class="n">n_ids_lems</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;markov&#39;</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="mi">2</span>
<span class="n">markov_chain_l</span><span class="p">[</span><span class="n">n_ids_lems</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;chain&#39;</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="mi">2</span>
<span class="n">facebook_l</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lems</span><span class="p">))</span>
<span class="n">facebook_l</span><span class="p">[</span><span class="n">n_ids_lems</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;facebook&#39;</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="c1">#stems </span>
<span class="n">markov_chain_s</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">stems</span><span class="p">))</span>
<span class="n">markov_chain_s</span><span class="p">[</span><span class="n">n_ids_stems</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;markov&#39;</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="mi">2</span>
<span class="n">markov_chain_s</span><span class="p">[</span><span class="n">n_ids_stems</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;chain&#39;</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="mi">2</span>
<span class="n">facebook_s</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">stems</span><span class="p">))</span>
<span class="n">facebook_s</span><span class="p">[</span><span class="n">n_ids_stems</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;facebook&#39;</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="c1">#bigrams </span>
<span class="n">markov_chain_bi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">bigrams</span><span class="p">))</span>
<span class="n">markov_chain_bi</span><span class="p">[</span><span class="n">n_ids_bigrams</span><span class="o">.</span><span class="n">index</span><span class="p">((</span><span class="s1">&#39;markov&#39;</span><span class="p">,</span><span class="s1">&#39;chain&#39;</span><span class="p">))]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">facebook_bi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">bigrams</span><span class="p">))</span>
<span class="n">fb_is</span><span class="o">=</span><span class="p">[]</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">n_ids_bigrams</span><span class="p">):</span>
<span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">==</span><span class="s2">&quot;facebook&quot;</span> <span class="ow">or</span> <span class="n">item</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">==</span><span class="s2">&quot;facebook&quot;</span><span class="p">:</span>
<span class="n">fb_is</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">fb_is</span><span class="p">:</span>
<span class="n">facebook_bi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">=</span><span class="mi">1</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">fb_is</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#similarity function</span>
<span class="k">def</span> <span class="nf">cosine_sim</span><span class="p">(</span><span class="n">d1</span><span class="p">,</span> <span class="n">d2</span><span class="p">):</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">d1</span><span class="p">,</span> <span class="n">d2</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">norm</span><span class="p">(</span><span class="n">d1</span><span class="p">)</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">norm</span><span class="p">(</span><span class="n">d2</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[27]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">get_top5queries</span><span class="p">(</span><span class="n">query_vec</span><span class="p">,</span><span class="n">query_name</span><span class="p">,</span><span class="n">TFIDF_matrix</span><span class="p">):</span>
<span class="n">documents</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">apply_along_axis</span><span class="p">(</span><span class="n">cosine_sim</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">TFIDF_matrix</span><span class="p">,</span> <span class="n">query_vec</span><span class="p">)</span>
<span class="n">top5</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">documents</span><span class="p">)[</span><span class="o">-</span><span class="mi">5</span><span class="p">:][::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">top</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">course</span> <span class="ow">in</span> <span class="n">top5</span><span class="p">:</span>
<span class="n">top</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">processed_courses</span><span class="p">[</span><span class="n">course</span><span class="p">][</span><span class="s1">&#39;name&#39;</span><span class="p">],</span> <span class="n">documents</span><span class="p">[</span><span class="n">course</span><span class="p">]))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Top five matches for the query &quot;</span><span class="p">,</span><span class="n">query_name</span><span class="p">,</span><span class="s2">&quot; and the according similarity:&quot;</span><span class="p">)</span>
<span class="n">_</span> <span class="o">=</span> <span class="p">[</span><span class="nb">print</span><span class="p">(</span><span class="s1">&#39; -&#39;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">&#39;:&#39;</span><span class="p">,</span> <span class="n">prob</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">prob</span> <span class="ow">in</span> <span class="n">top</span><span class="p">]</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="1.--Display-the-top-five-courses-together-with-their-similarity-score-for-each-query.">1. Display the top five courses together with their similarity score for each query.<a class="anchor-link" href="#1.--Display-the-top-five-courses-together-with-their-similarity-score-for-each-query.">&#182;</a></h4><p>Displaying for TDIDF using stems and lemmas for comparison</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[28]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">get_top5queries</span><span class="p">(</span><span class="n">markov_chain_s</span><span class="p">,</span><span class="s2">&quot;markov chain&quot;</span><span class="p">,</span><span class="n">TFIDF_matrix_stems</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">get_top5queries</span><span class="p">(</span><span class="n">facebook_s</span><span class="p">,</span><span class="s2">&quot;facebook&quot;</span><span class="p">,</span><span class="n">TFIDF_matrix_stems</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Top five matches for the query markov chain and the according similarity:
- Applied probability &amp; stochastic processes : 0.586117120443
- Applied stochastic processes : 0.58190081457
- Markov chains and algorithmic applications : 0.419857837302
- Supply chain management : 0.389515427594
- Mathematical models in supply chain management : 0.327249755855
Top five matches for the query facebook and the according similarity:
- Computational Social Media : 0.185539579223
- Hydrogeophysics : 0.0
- Electronic properties of solids and superconductivity : 0.0
- CCMX Advanced Course - Instrumented Nanoindentation : 0.0
- Molecular and cellular biophysic II : 0.0
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[29]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">get_top5queries</span><span class="p">(</span><span class="n">markov_chain_l</span><span class="p">,</span><span class="s2">&quot;markov chain&quot;</span><span class="p">,</span><span class="n">TFIDF_matrix_lems</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">get_top5queries</span><span class="p">(</span><span class="n">facebook_l</span><span class="p">,</span><span class="s2">&quot;facebook&quot;</span><span class="p">,</span><span class="n">TFIDF_matrix_lems</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Top five matches for the query markov chain and the according similarity:
- Applied probability &amp; stochastic processes : 0.574955105358
- Applied stochastic processes : 0.541807126949
- Markov chains and algorithmic applications : 0.391093743519
- Supply chain management : 0.38252650069
- Mathematical models in supply chain management : 0.315020697512
Top five matches for the query facebook and the according similarity:
- Computational Social Media : 0.183865591366
- Hydrogeophysics : 0.0
- Electronic properties of solids and superconductivity : 0.0
- CCMX Advanced Course - Instrumented Nanoindentation : 0.0
- Molecular and cellular biophysic II : 0.0
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[30]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">get_top5queries</span><span class="p">(</span><span class="n">markov_chain_bi</span><span class="p">,</span><span class="s2">&quot;markov chain&quot;</span><span class="p">,</span><span class="n">TFIDF_matrix_bigrams</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">get_top5queries</span><span class="p">(</span><span class="n">facebook_bi</span><span class="p">,</span><span class="s2">&quot;facebook&quot;</span><span class="p">,</span><span class="n">TFIDF_matrix_bigrams</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Top five matches for the query markov chain and the according similarity:
- Applied stochastic processes : 0.32858891312
- Applied probability &amp; stochastic processes : 0.257049229317
- Markov chains and algorithmic applications : 0.248341063649
- Optimization and simulation : 0.0893181314145
- Stochastic calculus I : 0.0816802501021
Top five matches for the query facebook and the according similarity:
- Computational Social Media : 0.137796132605
- Hydrogeophysics : 0.0
- Electronic properties of solids and superconductivity : 0.0
- CCMX Advanced Course - Instrumented Nanoindentation : 0.0
- Molecular and cellular biophysic II : 0.0
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>Lemmas vs stems:</strong> We can see that both methods produce the same top 5 matches for both queries with the same orders and only a small difference in the similarity. So it the methods seem to work equally well</p>
<p><strong>Bigrams:</strong> Interestingly the bigrams return a result that is a little different. While the first three courses in the markov chain query are similar the last two are not. That is because only the combination of both words is searched. The single models look for chain and markov seperately. Therefore, supply chain topics, that talk about chains a lot are in the top 5. Also the overall similarities are smaller than for the models above.<br>
So it seems that bigrams might perform a little bit better.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="2.--What-do-you-think-of-the-results?-Give-your-intuition-on-what-is-happening.">2. What do you think of the results? Give your intuition on what is happening.<a class="anchor-link" href="#2.--What-do-you-think-of-the-results?-Give-your-intuition-on-what-is-happening.">&#182;</a></h4><p>We observe that while the first query gives good results, the second query 'facebook' only returns one document with a non-zero 'similarity'. That is because the word 'facebook' does only occur in that one course description but not in others. So we are not be able to give any relevance for other documents, even though they might contain similar phrases like 'social media'.</p>
<p>This shows a disadvantage of vector space retrieval models, as they are not able to generalize the concepts of the searched terms and fail if the specific word cannot be found oin a document.</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

Event Timeline