Changeset - 32c2469b99f4
[Not reviewed]
0 0 95
Christopher Neugebauer - 7 years ago 2017-06-07 21:57:01
chrisjrn@gmail.com
Vendors bootstrap-sass :(
95 files changed with 13387 insertions and 0 deletions:
0 comments (0 inline, 0 general)
static/bootstrap/fonts/bootstrap/glyphicons-halflings-regular.eot
Show inline comments
 
new file 100644
 
binary diff not shown
static/bootstrap/fonts/bootstrap/glyphicons-halflings-regular.svg
Show inline comments
 
new file 100644
 
<?xml version="1.0" standalone="no"?>
 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
 
<svg xmlns="http://www.w3.org/2000/svg">
 
<metadata></metadata>
 
<defs>
 
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
 
<font-face units-per-em="1200" ascent="960" descent="-240" />
 
<missing-glyph horiz-adv-x="500" />
 
<glyph horiz-adv-x="0" />
 
<glyph horiz-adv-x="400" />
 
<glyph unicode=" " />
 
<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
 
<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xa0;" />
 
<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
 
<glyph unicode="&#x2000;" horiz-adv-x="650" />
 
<glyph unicode="&#x2001;" horiz-adv-x="1300" />
 
<glyph unicode="&#x2002;" horiz-adv-x="650" />
 
<glyph unicode="&#x2003;" horiz-adv-x="1300" />
 
<glyph unicode="&#x2004;" horiz-adv-x="433" />
 
<glyph unicode="&#x2005;" horiz-adv-x="325" />
 
<glyph unicode="&#x2006;" horiz-adv-x="216" />
 
<glyph unicode="&#x2007;" horiz-adv-x="216" />
 
<glyph unicode="&#x2008;" horiz-adv-x="162" />
 
<glyph unicode="&#x2009;" horiz-adv-x="260" />
 
<glyph unicode="&#x200a;" horiz-adv-x="72" />
 
<glyph unicode="&#x202f;" horiz-adv-x="260" />
 
<glyph unicode="&#x205f;" horiz-adv-x="325" />
 
<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
 
<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
 
<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
 
<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
 
<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
 
<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
 
<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
 
<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
 
<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
 
<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
 
<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
 
<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
 
<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
 
<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
 
<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
 
<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
 
<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
 
<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
 
<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
 
<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
 
<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
 
<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
 
<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
 
<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
 
<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
 
<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
 
<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
 
<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
 
<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
 
<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
 
<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
 
<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
 
<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
 
<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
 
<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
 
<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
 
<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
 
<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
 
<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
 
<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
 
<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
 
<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
 
<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
 
<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
 
<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
 
<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
 
<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
 
<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
 
<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
 
<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
 
<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
 
<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
 
<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
 
<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
 
<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
 
<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
 
<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
 
<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
 
<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
 
<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
 
<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
 
<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
 
<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
 
<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
 
<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
 
<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
 
<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
 
<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
 
<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
 
<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
 
<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
 
<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
 
<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
 
<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
 
<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
 
<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
 
<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
 
<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
 
<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
 
<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
 
<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
 
<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
 
<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
 
<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
 
<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
 
<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
 
<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
 
<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
 
<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
 
<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
 
<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
 
<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
 
<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
 
<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
 
<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
 
<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
 
<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
 
<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
 
<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
 
<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
 
<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
 
<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
 
<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
 
<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
 
<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
 
<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
 
<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
 
<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
 
<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
 
<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
 
<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
 
<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
 
<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
 
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
 
<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
 
<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
 
<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
 
<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
 
<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
 
<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
 
<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
 
<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
 
<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
 
<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
 
<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
 
<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
 
<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
 
<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
 
<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
 
<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
 
<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
 
<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
 
<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
 
<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
 
<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
 
<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
 
<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
 
<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
 
<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
 
<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
 
<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
 
<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
 
<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
 
<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
 
<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
 
<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
 
<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
 
<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
 
<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
 
<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
 
<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
 
<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
 
<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
 
<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
 
<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
 
<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
 
<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
 
<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
 
<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
 
<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
 
<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
 
<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
 
<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
 
<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
 
<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
 
<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
 
<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
 
<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
 
<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
 
<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
 
<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
 
<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
 
<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
 
<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
 
<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
 
<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
 
<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
 
<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
 
<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
 
<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
 
<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
 
<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
 
<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
 
<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
 
<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
 
<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
 
<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
 
<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
 
<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
 
<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
 
<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
 
<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
 
<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
 
<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
 
<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
 
<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
 
<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
 
<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
 
<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
 
<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
 
<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
 
<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
 
<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
 
<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
 
<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
 
<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
 
<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
 
<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
 
<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
 
<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
 
<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
 
<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
 
<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
 
<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
 
<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
 
<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
 
<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
 
<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
 
<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
 
</font>
 
</defs></svg> 
...
 
\ No newline at end of file
static/bootstrap/fonts/bootstrap/glyphicons-halflings-regular.ttf
Show inline comments
 
new file 100644
 
binary diff not shown
static/bootstrap/fonts/bootstrap/glyphicons-halflings-regular.woff
Show inline comments
 
new file 100644
 
binary diff not shown
static/bootstrap/fonts/bootstrap/glyphicons-halflings-regular.woff2
Show inline comments
 
new file 100644
 
binary diff not shown
static/bootstrap/images/.keep
Show inline comments
 
new file 100644
static/bootstrap/javascripts/bootstrap-sprockets.js
Show inline comments
 
new file 100644
 
//= require ./bootstrap/transition
 
//= require ./bootstrap/alert
 
//= require ./bootstrap/button
 
//= require ./bootstrap/carousel
 
//= require ./bootstrap/collapse
 
//= require ./bootstrap/dropdown
 
//= require ./bootstrap/modal
 
//= require ./bootstrap/tab
 
//= require ./bootstrap/affix
 
//= require ./bootstrap/scrollspy
 
//= require ./bootstrap/tooltip
 
//= require ./bootstrap/popover
static/bootstrap/javascripts/bootstrap.js
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under the MIT license
 
 */
 

	
 
if (typeof jQuery === 'undefined') {
 
  throw new Error('Bootstrap\'s JavaScript requires jQuery')
 
}
 

	
 
+function ($) {
 
  'use strict';
 
  var version = $.fn.jquery.split(' ')[0].split('.')
 
  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
 
    throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
 
  }
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: transition.js v3.3.7
 
 * http://getbootstrap.com/javascript/#transitions
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
 
  // ============================================================
 

	
 
  function transitionEnd() {
 
    var el = document.createElement('bootstrap')
 

	
 
    var transEndEventNames = {
 
      WebkitTransition : 'webkitTransitionEnd',
 
      MozTransition    : 'transitionend',
 
      OTransition      : 'oTransitionEnd otransitionend',
 
      transition       : 'transitionend'
 
    }
 

	
 
    for (var name in transEndEventNames) {
 
      if (el.style[name] !== undefined) {
 
        return { end: transEndEventNames[name] }
 
      }
 
    }
 

	
 
    return false // explicit for ie8 (  ._.)
 
  }
 

	
 
  // http://blog.alexmaccaw.com/css-transitions
 
  $.fn.emulateTransitionEnd = function (duration) {
 
    var called = false
 
    var $el = this
 
    $(this).one('bsTransitionEnd', function () { called = true })
 
    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
 
    setTimeout(callback, duration)
 
    return this
 
  }
 

	
 
  $(function () {
 
    $.support.transition = transitionEnd()
 

	
 
    if (!$.support.transition) return
 

	
 
    $.event.special.bsTransitionEnd = {
 
      bindType: $.support.transition.end,
 
      delegateType: $.support.transition.end,
 
      handle: function (e) {
 
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
 
      }
 
    }
 
  })
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: alert.js v3.3.7
 
 * http://getbootstrap.com/javascript/#alerts
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // ALERT CLASS DEFINITION
 
  // ======================
 

	
 
  var dismiss = '[data-dismiss="alert"]'
 
  var Alert   = function (el) {
 
    $(el).on('click', dismiss, this.close)
 
  }
 

	
 
  Alert.VERSION = '3.3.7'
 

	
 
  Alert.TRANSITION_DURATION = 150
 

	
 
  Alert.prototype.close = function (e) {
 
    var $this    = $(this)
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = $(selector === '#' ? [] : selector)
 

	
 
    if (e) e.preventDefault()
 

	
 
    if (!$parent.length) {
 
      $parent = $this.closest('.alert')
 
    }
 

	
 
    $parent.trigger(e = $.Event('close.bs.alert'))
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $parent.removeClass('in')
 

	
 
    function removeElement() {
 
      // detach from parent, fire event then clean up data
 
      $parent.detach().trigger('closed.bs.alert').remove()
 
    }
 

	
 
    $.support.transition && $parent.hasClass('fade') ?
 
      $parent
 
        .one('bsTransitionEnd', removeElement)
 
        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
 
      removeElement()
 
  }
 

	
 

	
 
  // ALERT PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.alert')
 

	
 
      if (!data) $this.data('bs.alert', (data = new Alert(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.alert
 

	
 
  $.fn.alert             = Plugin
 
  $.fn.alert.Constructor = Alert
 

	
 

	
 
  // ALERT NO CONFLICT
 
  // =================
 

	
 
  $.fn.alert.noConflict = function () {
 
    $.fn.alert = old
 
    return this
 
  }
 

	
 

	
 
  // ALERT DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: button.js v3.3.7
 
 * http://getbootstrap.com/javascript/#buttons
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // BUTTON PUBLIC CLASS DEFINITION
 
  // ==============================
 

	
 
  var Button = function (element, options) {
 
    this.$element  = $(element)
 
    this.options   = $.extend({}, Button.DEFAULTS, options)
 
    this.isLoading = false
 
  }
 

	
 
  Button.VERSION  = '3.3.7'
 

	
 
  Button.DEFAULTS = {
 
    loadingText: 'loading...'
 
  }
 

	
 
  Button.prototype.setState = function (state) {
 
    var d    = 'disabled'
 
    var $el  = this.$element
 
    var val  = $el.is('input') ? 'val' : 'html'
 
    var data = $el.data()
 

	
 
    state += 'Text'
 

	
 
    if (data.resetText == null) $el.data('resetText', $el[val]())
 

	
 
    // push to event loop to allow forms to submit
 
    setTimeout($.proxy(function () {
 
      $el[val](data[state] == null ? this.options[state] : data[state])
 

	
 
      if (state == 'loadingText') {
 
        this.isLoading = true
 
        $el.addClass(d).attr(d, d).prop(d, true)
 
      } else if (this.isLoading) {
 
        this.isLoading = false
 
        $el.removeClass(d).removeAttr(d).prop(d, false)
 
      }
 
    }, this), 0)
 
  }
 

	
 
  Button.prototype.toggle = function () {
 
    var changed = true
 
    var $parent = this.$element.closest('[data-toggle="buttons"]')
 

	
 
    if ($parent.length) {
 
      var $input = this.$element.find('input')
 
      if ($input.prop('type') == 'radio') {
 
        if ($input.prop('checked')) changed = false
 
        $parent.find('.active').removeClass('active')
 
        this.$element.addClass('active')
 
      } else if ($input.prop('type') == 'checkbox') {
 
        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
 
        this.$element.toggleClass('active')
 
      }
 
      $input.prop('checked', this.$element.hasClass('active'))
 
      if (changed) $input.trigger('change')
 
    } else {
 
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
 
      this.$element.toggleClass('active')
 
    }
 
  }
 

	
 

	
 
  // BUTTON PLUGIN DEFINITION
 
  // ========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.button')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.button', (data = new Button(this, options)))
 

	
 
      if (option == 'toggle') data.toggle()
 
      else if (option) data.setState(option)
 
    })
 
  }
 

	
 
  var old = $.fn.button
 

	
 
  $.fn.button             = Plugin
 
  $.fn.button.Constructor = Button
 

	
 

	
 
  // BUTTON NO CONFLICT
 
  // ==================
 

	
 
  $.fn.button.noConflict = function () {
 
    $.fn.button = old
 
    return this
 
  }
 

	
 

	
 
  // BUTTON DATA-API
 
  // ===============
 

	
 
  $(document)
 
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      var $btn = $(e.target).closest('.btn')
 
      Plugin.call($btn, 'toggle')
 
      if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
 
        // Prevent double click on radios, and the double selections (so cancellation) on checkboxes
 
        e.preventDefault()
 
        // The target component still receive the focus
 
        if ($btn.is('input,button')) $btn.trigger('focus')
 
        else $btn.find('input:visible,button:visible').first().trigger('focus')
 
      }
 
    })
 
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
 
    })
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: carousel.js v3.3.7
 
 * http://getbootstrap.com/javascript/#carousel
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CAROUSEL CLASS DEFINITION
 
  // =========================
 

	
 
  var Carousel = function (element, options) {
 
    this.$element    = $(element)
 
    this.$indicators = this.$element.find('.carousel-indicators')
 
    this.options     = options
 
    this.paused      = null
 
    this.sliding     = null
 
    this.interval    = null
 
    this.$active     = null
 
    this.$items      = null
 

	
 
    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
 

	
 
    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
 
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
 
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
 
  }
 

	
 
  Carousel.VERSION  = '3.3.7'
 

	
 
  Carousel.TRANSITION_DURATION = 600
 

	
 
  Carousel.DEFAULTS = {
 
    interval: 5000,
 
    pause: 'hover',
 
    wrap: true,
 
    keyboard: true
 
  }
 

	
 
  Carousel.prototype.keydown = function (e) {
 
    if (/input|textarea/i.test(e.target.tagName)) return
 
    switch (e.which) {
 
      case 37: this.prev(); break
 
      case 39: this.next(); break
 
      default: return
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  Carousel.prototype.cycle = function (e) {
 
    e || (this.paused = false)
 

	
 
    this.interval && clearInterval(this.interval)
 

	
 
    this.options.interval
 
      && !this.paused
 
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.getItemIndex = function (item) {
 
    this.$items = item.parent().children('.item')
 
    return this.$items.index(item || this.$active)
 
  }
 

	
 
  Carousel.prototype.getItemForDirection = function (direction, active) {
 
    var activeIndex = this.getItemIndex(active)
 
    var willWrap = (direction == 'prev' && activeIndex === 0)
 
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
 
    if (willWrap && !this.options.wrap) return active
 
    var delta = direction == 'prev' ? -1 : 1
 
    var itemIndex = (activeIndex + delta) % this.$items.length
 
    return this.$items.eq(itemIndex)
 
  }
 

	
 
  Carousel.prototype.to = function (pos) {
 
    var that        = this
 
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
 

	
 
    if (pos > (this.$items.length - 1) || pos < 0) return
 

	
 
    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
 
    if (activeIndex == pos) return this.pause().cycle()
 

	
 
    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
 
  }
 

	
 
  Carousel.prototype.pause = function (e) {
 
    e || (this.paused = true)
 

	
 
    if (this.$element.find('.next, .prev').length && $.support.transition) {
 
      this.$element.trigger($.support.transition.end)
 
      this.cycle(true)
 
    }
 

	
 
    this.interval = clearInterval(this.interval)
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.next = function () {
 
    if (this.sliding) return
 
    return this.slide('next')
 
  }
 

	
 
  Carousel.prototype.prev = function () {
 
    if (this.sliding) return
 
    return this.slide('prev')
 
  }
 

	
 
  Carousel.prototype.slide = function (type, next) {
 
    var $active   = this.$element.find('.item.active')
 
    var $next     = next || this.getItemForDirection(type, $active)
 
    var isCycling = this.interval
 
    var direction = type == 'next' ? 'left' : 'right'
 
    var that      = this
 

	
 
    if ($next.hasClass('active')) return (this.sliding = false)
 

	
 
    var relatedTarget = $next[0]
 
    var slideEvent = $.Event('slide.bs.carousel', {
 
      relatedTarget: relatedTarget,
 
      direction: direction
 
    })
 
    this.$element.trigger(slideEvent)
 
    if (slideEvent.isDefaultPrevented()) return
 

	
 
    this.sliding = true
 

	
 
    isCycling && this.pause()
 

	
 
    if (this.$indicators.length) {
 
      this.$indicators.find('.active').removeClass('active')
 
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
 
      $nextIndicator && $nextIndicator.addClass('active')
 
    }
 

	
 
    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
 
    if ($.support.transition && this.$element.hasClass('slide')) {
 
      $next.addClass(type)
 
      $next[0].offsetWidth // force reflow
 
      $active.addClass(direction)
 
      $next.addClass(direction)
 
      $active
 
        .one('bsTransitionEnd', function () {
 
          $next.removeClass([type, direction].join(' ')).addClass('active')
 
          $active.removeClass(['active', direction].join(' '))
 
          that.sliding = false
 
          setTimeout(function () {
 
            that.$element.trigger(slidEvent)
 
          }, 0)
 
        })
 
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
 
    } else {
 
      $active.removeClass('active')
 
      $next.addClass('active')
 
      this.sliding = false
 
      this.$element.trigger(slidEvent)
 
    }
 

	
 
    isCycling && this.cycle()
 

	
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.carousel')
 
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
 
      var action  = typeof option == 'string' ? option : options.slide
 

	
 
      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
 
      if (typeof option == 'number') data.to(option)
 
      else if (action) data[action]()
 
      else if (options.interval) data.pause().cycle()
 
    })
 
  }
 

	
 
  var old = $.fn.carousel
 

	
 
  $.fn.carousel             = Plugin
 
  $.fn.carousel.Constructor = Carousel
 

	
 

	
 
  // CAROUSEL NO CONFLICT
 
  // ====================
 

	
 
  $.fn.carousel.noConflict = function () {
 
    $.fn.carousel = old
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL DATA-API
 
  // =================
 

	
 
  var clickHandler = function (e) {
 
    var href
 
    var $this   = $(this)
 
    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
 
    if (!$target.hasClass('carousel')) return
 
    var options = $.extend({}, $target.data(), $this.data())
 
    var slideIndex = $this.attr('data-slide-to')
 
    if (slideIndex) options.interval = false
 

	
 
    Plugin.call($target, options)
 

	
 
    if (slideIndex) {
 
      $target.data('bs.carousel').to(slideIndex)
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  $(document)
 
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
 
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
 

	
 
  $(window).on('load', function () {
 
    $('[data-ride="carousel"]').each(function () {
 
      var $carousel = $(this)
 
      Plugin.call($carousel, $carousel.data())
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: collapse.js v3.3.7
 
 * http://getbootstrap.com/javascript/#collapse
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 
/* jshint latedef: false */
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // COLLAPSE PUBLIC CLASS DEFINITION
 
  // ================================
 

	
 
  var Collapse = function (element, options) {
 
    this.$element      = $(element)
 
    this.options       = $.extend({}, Collapse.DEFAULTS, options)
 
    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
 
                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
 
    this.transitioning = null
 

	
 
    if (this.options.parent) {
 
      this.$parent = this.getParent()
 
    } else {
 
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
 
    }
 

	
 
    if (this.options.toggle) this.toggle()
 
  }
 

	
 
  Collapse.VERSION  = '3.3.7'
 

	
 
  Collapse.TRANSITION_DURATION = 350
 

	
 
  Collapse.DEFAULTS = {
 
    toggle: true
 
  }
 

	
 
  Collapse.prototype.dimension = function () {
 
    var hasWidth = this.$element.hasClass('width')
 
    return hasWidth ? 'width' : 'height'
 
  }
 

	
 
  Collapse.prototype.show = function () {
 
    if (this.transitioning || this.$element.hasClass('in')) return
 

	
 
    var activesData
 
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
 

	
 
    if (actives && actives.length) {
 
      activesData = actives.data('bs.collapse')
 
      if (activesData && activesData.transitioning) return
 
    }
 

	
 
    var startEvent = $.Event('show.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    if (actives && actives.length) {
 
      Plugin.call(actives, 'hide')
 
      activesData || actives.data('bs.collapse', null)
 
    }
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element
 
      .removeClass('collapse')
 
      .addClass('collapsing')[dimension](0)
 
      .attr('aria-expanded', true)
 

	
 
    this.$trigger
 
      .removeClass('collapsed')
 
      .attr('aria-expanded', true)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse in')[dimension]('')
 
      this.transitioning = 0
 
      this.$element
 
        .trigger('shown.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
 

	
 
    this.$element
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
 
  }
 

	
 
  Collapse.prototype.hide = function () {
 
    if (this.transitioning || !this.$element.hasClass('in')) return
 

	
 
    var startEvent = $.Event('hide.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
 

	
 
    this.$element
 
      .addClass('collapsing')
 
      .removeClass('collapse in')
 
      .attr('aria-expanded', false)
 

	
 
    this.$trigger
 
      .addClass('collapsed')
 
      .attr('aria-expanded', false)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.transitioning = 0
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse')
 
        .trigger('hidden.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    this.$element
 
      [dimension](0)
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
 
  }
 

	
 
  Collapse.prototype.toggle = function () {
 
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
 
  }
 

	
 
  Collapse.prototype.getParent = function () {
 
    return $(this.options.parent)
 
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
 
      .each($.proxy(function (i, element) {
 
        var $element = $(element)
 
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
 
      }, this))
 
      .end()
 
  }
 

	
 
  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
 
    var isOpen = $element.hasClass('in')
 

	
 
    $element.attr('aria-expanded', isOpen)
 
    $trigger
 
      .toggleClass('collapsed', !isOpen)
 
      .attr('aria-expanded', isOpen)
 
  }
 

	
 
  function getTargetFromTrigger($trigger) {
 
    var href
 
    var target = $trigger.attr('data-target')
 
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
 

	
 
    return $(target)
 
  }
 

	
 

	
 
  // COLLAPSE PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.collapse')
 
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
 
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.collapse
 

	
 
  $.fn.collapse             = Plugin
 
  $.fn.collapse.Constructor = Collapse
 

	
 

	
 
  // COLLAPSE NO CONFLICT
 
  // ====================
 

	
 
  $.fn.collapse.noConflict = function () {
 
    $.fn.collapse = old
 
    return this
 
  }
 

	
 

	
 
  // COLLAPSE DATA-API
 
  // =================
 

	
 
  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
 
    var $this   = $(this)
 

	
 
    if (!$this.attr('data-target')) e.preventDefault()
 

	
 
    var $target = getTargetFromTrigger($this)
 
    var data    = $target.data('bs.collapse')
 
    var option  = data ? 'toggle' : $this.data()
 

	
 
    Plugin.call($target, option)
 
  })
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: dropdown.js v3.3.7
 
 * http://getbootstrap.com/javascript/#dropdowns
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // DROPDOWN CLASS DEFINITION
 
  // =========================
 

	
 
  var backdrop = '.dropdown-backdrop'
 
  var toggle   = '[data-toggle="dropdown"]'
 
  var Dropdown = function (element) {
 
    $(element).on('click.bs.dropdown', this.toggle)
 
  }
 

	
 
  Dropdown.VERSION = '3.3.7'
 

	
 
  function getParent($this) {
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = selector && $(selector)
 

	
 
    return $parent && $parent.length ? $parent : $this.parent()
 
  }
 

	
 
  function clearMenus(e) {
 
    if (e && e.which === 3) return
 
    $(backdrop).remove()
 
    $(toggle).each(function () {
 
      var $this         = $(this)
 
      var $parent       = getParent($this)
 
      var relatedTarget = { relatedTarget: this }
 

	
 
      if (!$parent.hasClass('open')) return
 

	
 
      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
 

	
 
      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this.attr('aria-expanded', 'false')
 
      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
 
    })
 
  }
 

	
 
  Dropdown.prototype.toggle = function (e) {
 
    var $this = $(this)
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    clearMenus()
 

	
 
    if (!isActive) {
 
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
 
        // if mobile we use a backdrop because click events don't delegate
 
        $(document.createElement('div'))
 
          .addClass('dropdown-backdrop')
 
          .insertAfter($(this))
 
          .on('click', clearMenus)
 
      }
 

	
 
      var relatedTarget = { relatedTarget: this }
 
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this
 
        .trigger('focus')
 
        .attr('aria-expanded', 'true')
 

	
 
      $parent
 
        .toggleClass('open')
 
        .trigger($.Event('shown.bs.dropdown', relatedTarget))
 
    }
 

	
 
    return false
 
  }
 

	
 
  Dropdown.prototype.keydown = function (e) {
 
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
 

	
 
    var $this = $(this)
 

	
 
    e.preventDefault()
 
    e.stopPropagation()
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    if (!isActive && e.which != 27 || isActive && e.which == 27) {
 
      if (e.which == 27) $parent.find(toggle).trigger('focus')
 
      return $this.trigger('click')
 
    }
 

	
 
    var desc = ' li:not(.disabled):visible a'
 
    var $items = $parent.find('.dropdown-menu' + desc)
 

	
 
    if (!$items.length) return
 

	
 
    var index = $items.index(e.target)
 

	
 
    if (e.which == 38 && index > 0)                 index--         // up
 
    if (e.which == 40 && index < $items.length - 1) index++         // down
 
    if (!~index)                                    index = 0
 

	
 
    $items.eq(index).trigger('focus')
 
  }
 

	
 

	
 
  // DROPDOWN PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.dropdown')
 

	
 
      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.dropdown
 

	
 
  $.fn.dropdown             = Plugin
 
  $.fn.dropdown.Constructor = Dropdown
 

	
 

	
 
  // DROPDOWN NO CONFLICT
 
  // ====================
 

	
 
  $.fn.dropdown.noConflict = function () {
 
    $.fn.dropdown = old
 
    return this
 
  }
 

	
 

	
 
  // APPLY TO STANDARD DROPDOWN ELEMENTS
 
  // ===================================
 

	
 
  $(document)
 
    .on('click.bs.dropdown.data-api', clearMenus)
 
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
 
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
 
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
 
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: modal.js v3.3.7
 
 * http://getbootstrap.com/javascript/#modals
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // MODAL CLASS DEFINITION
 
  // ======================
 

	
 
  var Modal = function (element, options) {
 
    this.options             = options
 
    this.$body               = $(document.body)
 
    this.$element            = $(element)
 
    this.$dialog             = this.$element.find('.modal-dialog')
 
    this.$backdrop           = null
 
    this.isShown             = null
 
    this.originalBodyPad     = null
 
    this.scrollbarWidth      = 0
 
    this.ignoreBackdropClick = false
 

	
 
    if (this.options.remote) {
 
      this.$element
 
        .find('.modal-content')
 
        .load(this.options.remote, $.proxy(function () {
 
          this.$element.trigger('loaded.bs.modal')
 
        }, this))
 
    }
 
  }
 

	
 
  Modal.VERSION  = '3.3.7'
 

	
 
  Modal.TRANSITION_DURATION = 300
 
  Modal.BACKDROP_TRANSITION_DURATION = 150
 

	
 
  Modal.DEFAULTS = {
 
    backdrop: true,
 
    keyboard: true,
 
    show: true
 
  }
 

	
 
  Modal.prototype.toggle = function (_relatedTarget) {
 
    return this.isShown ? this.hide() : this.show(_relatedTarget)
 
  }
 

	
 
  Modal.prototype.show = function (_relatedTarget) {
 
    var that = this
 
    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
    this.$element.trigger(e)
 

	
 
    if (this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = true
 

	
 
    this.checkScrollbar()
 
    this.setScrollbar()
 
    this.$body.addClass('modal-open')
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
 

	
 
    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
 
      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
 
        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
 
      })
 
    })
 

	
 
    this.backdrop(function () {
 
      var transition = $.support.transition && that.$element.hasClass('fade')
 

	
 
      if (!that.$element.parent().length) {
 
        that.$element.appendTo(that.$body) // don't move modals dom position
 
      }
 

	
 
      that.$element
 
        .show()
 
        .scrollTop(0)
 

	
 
      that.adjustDialog()
 

	
 
      if (transition) {
 
        that.$element[0].offsetWidth // force reflow
 
      }
 

	
 
      that.$element.addClass('in')
 

	
 
      that.enforceFocus()
 

	
 
      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
      transition ?
 
        that.$dialog // wait for modal to slide in
 
          .one('bsTransitionEnd', function () {
 
            that.$element.trigger('focus').trigger(e)
 
          })
 
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
        that.$element.trigger('focus').trigger(e)
 
    })
 
  }
 

	
 
  Modal.prototype.hide = function (e) {
 
    if (e) e.preventDefault()
 

	
 
    e = $.Event('hide.bs.modal')
 

	
 
    this.$element.trigger(e)
 

	
 
    if (!this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = false
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    $(document).off('focusin.bs.modal')
 

	
 
    this.$element
 
      .removeClass('in')
 
      .off('click.dismiss.bs.modal')
 
      .off('mouseup.dismiss.bs.modal')
 

	
 
    this.$dialog.off('mousedown.dismiss.bs.modal')
 

	
 
    $.support.transition && this.$element.hasClass('fade') ?
 
      this.$element
 
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
 
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
      this.hideModal()
 
  }
 

	
 
  Modal.prototype.enforceFocus = function () {
 
    $(document)
 
      .off('focusin.bs.modal') // guard against infinite focus loop
 
      .on('focusin.bs.modal', $.proxy(function (e) {
 
        if (document !== e.target &&
 
            this.$element[0] !== e.target &&
 
            !this.$element.has(e.target).length) {
 
          this.$element.trigger('focus')
 
        }
 
      }, this))
 
  }
 

	
 
  Modal.prototype.escape = function () {
 
    if (this.isShown && this.options.keyboard) {
 
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
 
        e.which == 27 && this.hide()
 
      }, this))
 
    } else if (!this.isShown) {
 
      this.$element.off('keydown.dismiss.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.resize = function () {
 
    if (this.isShown) {
 
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
 
    } else {
 
      $(window).off('resize.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.hideModal = function () {
 
    var that = this
 
    this.$element.hide()
 
    this.backdrop(function () {
 
      that.$body.removeClass('modal-open')
 
      that.resetAdjustments()
 
      that.resetScrollbar()
 
      that.$element.trigger('hidden.bs.modal')
 
    })
 
  }
 

	
 
  Modal.prototype.removeBackdrop = function () {
 
    this.$backdrop && this.$backdrop.remove()
 
    this.$backdrop = null
 
  }
 

	
 
  Modal.prototype.backdrop = function (callback) {
 
    var that = this
 
    var animate = this.$element.hasClass('fade') ? 'fade' : ''
 

	
 
    if (this.isShown && this.options.backdrop) {
 
      var doAnimate = $.support.transition && animate
 

	
 
      this.$backdrop = $(document.createElement('div'))
 
        .addClass('modal-backdrop ' + animate)
 
        .appendTo(this.$body)
 

	
 
      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
 
        if (this.ignoreBackdropClick) {
 
          this.ignoreBackdropClick = false
 
          return
 
        }
 
        if (e.target !== e.currentTarget) return
 
        this.options.backdrop == 'static'
 
          ? this.$element[0].focus()
 
          : this.hide()
 
      }, this))
 

	
 
      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 

	
 
      this.$backdrop.addClass('in')
 

	
 
      if (!callback) return
 

	
 
      doAnimate ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callback)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callback()
 

	
 
    } else if (!this.isShown && this.$backdrop) {
 
      this.$backdrop.removeClass('in')
 

	
 
      var callbackRemove = function () {
 
        that.removeBackdrop()
 
        callback && callback()
 
      }
 
      $.support.transition && this.$element.hasClass('fade') ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callbackRemove)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callbackRemove()
 

	
 
    } else if (callback) {
 
      callback()
 
    }
 
  }
 

	
 
  // these following methods are used to handle overflowing modals
 

	
 
  Modal.prototype.handleUpdate = function () {
 
    this.adjustDialog()
 
  }
 

	
 
  Modal.prototype.adjustDialog = function () {
 
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
 

	
 
    this.$element.css({
 
      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
 
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
 
    })
 
  }
 

	
 
  Modal.prototype.resetAdjustments = function () {
 
    this.$element.css({
 
      paddingLeft: '',
 
      paddingRight: ''
 
    })
 
  }
 

	
 
  Modal.prototype.checkScrollbar = function () {
 
    var fullWindowWidth = window.innerWidth
 
    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
 
      var documentElementRect = document.documentElement.getBoundingClientRect()
 
      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
 
    }
 
    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
 
    this.scrollbarWidth = this.measureScrollbar()
 
  }
 

	
 
  Modal.prototype.setScrollbar = function () {
 
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
 
    this.originalBodyPad = document.body.style.paddingRight || ''
 
    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
 
  }
 

	
 
  Modal.prototype.resetScrollbar = function () {
 
    this.$body.css('padding-right', this.originalBodyPad)
 
  }
 

	
 
  Modal.prototype.measureScrollbar = function () { // thx walsh
 
    var scrollDiv = document.createElement('div')
 
    scrollDiv.className = 'modal-scrollbar-measure'
 
    this.$body.append(scrollDiv)
 
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
 
    this.$body[0].removeChild(scrollDiv)
 
    return scrollbarWidth
 
  }
 

	
 

	
 
  // MODAL PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option, _relatedTarget) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.modal')
 
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
 
      if (typeof option == 'string') data[option](_relatedTarget)
 
      else if (options.show) data.show(_relatedTarget)
 
    })
 
  }
 

	
 
  var old = $.fn.modal
 

	
 
  $.fn.modal             = Plugin
 
  $.fn.modal.Constructor = Modal
 

	
 

	
 
  // MODAL NO CONFLICT
 
  // =================
 

	
 
  $.fn.modal.noConflict = function () {
 
    $.fn.modal = old
 
    return this
 
  }
 

	
 

	
 
  // MODAL DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
 
    var $this   = $(this)
 
    var href    = $this.attr('href')
 
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
 
    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
 

	
 
    if ($this.is('a')) e.preventDefault()
 

	
 
    $target.one('show.bs.modal', function (showEvent) {
 
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
 
      $target.one('hidden.bs.modal', function () {
 
        $this.is(':visible') && $this.trigger('focus')
 
      })
 
    })
 
    Plugin.call($target, option, this)
 
  })
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: tooltip.js v3.3.7
 
 * http://getbootstrap.com/javascript/#tooltip
 
 * Inspired by the original jQuery.tipsy by Jason Frame
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TOOLTIP PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Tooltip = function (element, options) {
 
    this.type       = null
 
    this.options    = null
 
    this.enabled    = null
 
    this.timeout    = null
 
    this.hoverState = null
 
    this.$element   = null
 
    this.inState    = null
 

	
 
    this.init('tooltip', element, options)
 
  }
 

	
 
  Tooltip.VERSION  = '3.3.7'
 

	
 
  Tooltip.TRANSITION_DURATION = 150
 

	
 
  Tooltip.DEFAULTS = {
 
    animation: true,
 
    placement: 'top',
 
    selector: false,
 
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
 
    trigger: 'hover focus',
 
    title: '',
 
    delay: 0,
 
    html: false,
 
    container: false,
 
    viewport: {
 
      selector: 'body',
 
      padding: 0
 
    }
 
  }
 

	
 
  Tooltip.prototype.init = function (type, element, options) {
 
    this.enabled   = true
 
    this.type      = type
 
    this.$element  = $(element)
 
    this.options   = this.getOptions(options)
 
    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
 
    this.inState   = { click: false, hover: false, focus: false }
 

	
 
    if (this.$element[0] instanceof document.constructor && !this.options.selector) {
 
      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
 
    }
 

	
 
    var triggers = this.options.trigger.split(' ')
 

	
 
    for (var i = triggers.length; i--;) {
 
      var trigger = triggers[i]
 

	
 
      if (trigger == 'click') {
 
        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
 
      } else if (trigger != 'manual') {
 
        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
 
        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
 

	
 
        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
 
        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
 
      }
 
    }
 

	
 
    this.options.selector ?
 
      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
 
      this.fixTitle()
 
  }
 

	
 
  Tooltip.prototype.getDefaults = function () {
 
    return Tooltip.DEFAULTS
 
  }
 

	
 
  Tooltip.prototype.getOptions = function (options) {
 
    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
 

	
 
    if (options.delay && typeof options.delay == 'number') {
 
      options.delay = {
 
        show: options.delay,
 
        hide: options.delay
 
      }
 
    }
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.getDelegateOptions = function () {
 
    var options  = {}
 
    var defaults = this.getDefaults()
 

	
 
    this._options && $.each(this._options, function (key, value) {
 
      if (defaults[key] != value) options[key] = value
 
    })
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.enter = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
 
    }
 

	
 
    if (self.tip().hasClass('in') || self.hoverState == 'in') {
 
      self.hoverState = 'in'
 
      return
 
    }
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'in'
 

	
 
    if (!self.options.delay || !self.options.delay.show) return self.show()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'in') self.show()
 
    }, self.options.delay.show)
 
  }
 

	
 
  Tooltip.prototype.isInStateTrue = function () {
 
    for (var key in this.inState) {
 
      if (this.inState[key]) return true
 
    }
 

	
 
    return false
 
  }
 

	
 
  Tooltip.prototype.leave = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
 
    }
 

	
 
    if (self.isInStateTrue()) return
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'out'
 

	
 
    if (!self.options.delay || !self.options.delay.hide) return self.hide()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'out') self.hide()
 
    }, self.options.delay.hide)
 
  }
 

	
 
  Tooltip.prototype.show = function () {
 
    var e = $.Event('show.bs.' + this.type)
 

	
 
    if (this.hasContent() && this.enabled) {
 
      this.$element.trigger(e)
 

	
 
      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
 
      if (e.isDefaultPrevented() || !inDom) return
 
      var that = this
 

	
 
      var $tip = this.tip()
 

	
 
      var tipId = this.getUID(this.type)
 

	
 
      this.setContent()
 
      $tip.attr('id', tipId)
 
      this.$element.attr('aria-describedby', tipId)
 

	
 
      if (this.options.animation) $tip.addClass('fade')
 

	
 
      var placement = typeof this.options.placement == 'function' ?
 
        this.options.placement.call(this, $tip[0], this.$element[0]) :
 
        this.options.placement
 

	
 
      var autoToken = /\s?auto?\s?/i
 
      var autoPlace = autoToken.test(placement)
 
      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
 

	
 
      $tip
 
        .detach()
 
        .css({ top: 0, left: 0, display: 'block' })
 
        .addClass(placement)
 
        .data('bs.' + this.type, this)
 

	
 
      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
 
      this.$element.trigger('inserted.bs.' + this.type)
 

	
 
      var pos          = this.getPosition()
 
      var actualWidth  = $tip[0].offsetWidth
 
      var actualHeight = $tip[0].offsetHeight
 

	
 
      if (autoPlace) {
 
        var orgPlacement = placement
 
        var viewportDim = this.getPosition(this.$viewport)
 

	
 
        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
 
                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
 
                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
 
                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
 
                    placement
 

	
 
        $tip
 
          .removeClass(orgPlacement)
 
          .addClass(placement)
 
      }
 

	
 
      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
 

	
 
      this.applyPlacement(calculatedOffset, placement)
 

	
 
      var complete = function () {
 
        var prevHoverState = that.hoverState
 
        that.$element.trigger('shown.bs.' + that.type)
 
        that.hoverState = null
 

	
 
        if (prevHoverState == 'out') that.leave(that)
 
      }
 

	
 
      $.support.transition && this.$tip.hasClass('fade') ?
 
        $tip
 
          .one('bsTransitionEnd', complete)
 
          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
        complete()
 
    }
 
  }
 

	
 
  Tooltip.prototype.applyPlacement = function (offset, placement) {
 
    var $tip   = this.tip()
 
    var width  = $tip[0].offsetWidth
 
    var height = $tip[0].offsetHeight
 

	
 
    // manually read margins because getBoundingClientRect includes difference
 
    var marginTop = parseInt($tip.css('margin-top'), 10)
 
    var marginLeft = parseInt($tip.css('margin-left'), 10)
 

	
 
    // we must check for NaN for ie 8/9
 
    if (isNaN(marginTop))  marginTop  = 0
 
    if (isNaN(marginLeft)) marginLeft = 0
 

	
 
    offset.top  += marginTop
 
    offset.left += marginLeft
 

	
 
    // $.fn.offset doesn't round pixel values
 
    // so we use setOffset directly with our own function B-0
 
    $.offset.setOffset($tip[0], $.extend({
 
      using: function (props) {
 
        $tip.css({
 
          top: Math.round(props.top),
 
          left: Math.round(props.left)
 
        })
 
      }
 
    }, offset), 0)
 

	
 
    $tip.addClass('in')
 

	
 
    // check to see if placing tip in new offset caused the tip to resize itself
 
    var actualWidth  = $tip[0].offsetWidth
 
    var actualHeight = $tip[0].offsetHeight
 

	
 
    if (placement == 'top' && actualHeight != height) {
 
      offset.top = offset.top + height - actualHeight
 
    }
 

	
 
    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
 

	
 
    if (delta.left) offset.left += delta.left
 
    else offset.top += delta.top
 

	
 
    var isVertical          = /top|bottom/.test(placement)
 
    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
 
    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
 

	
 
    $tip.offset(offset)
 
    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
 
  }
 

	
 
  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
 
    this.arrow()
 
      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
 
      .css(isVertical ? 'top' : 'left', '')
 
  }
 

	
 
  Tooltip.prototype.setContent = function () {
 
    var $tip  = this.tip()
 
    var title = this.getTitle()
 

	
 
    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
 
    $tip.removeClass('fade in top bottom left right')
 
  }
 

	
 
  Tooltip.prototype.hide = function (callback) {
 
    var that = this
 
    var $tip = $(this.$tip)
 
    var e    = $.Event('hide.bs.' + this.type)
 

	
 
    function complete() {
 
      if (that.hoverState != 'in') $tip.detach()
 
      if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
 
        that.$element
 
          .removeAttr('aria-describedby')
 
          .trigger('hidden.bs.' + that.type)
 
      }
 
      callback && callback()
 
    }
 

	
 
    this.$element.trigger(e)
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $tip.removeClass('in')
 

	
 
    $.support.transition && $tip.hasClass('fade') ?
 
      $tip
 
        .one('bsTransitionEnd', complete)
 
        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
      complete()
 

	
 
    this.hoverState = null
 

	
 
    return this
 
  }
 

	
 
  Tooltip.prototype.fixTitle = function () {
 
    var $e = this.$element
 
    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
 
      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
 
    }
 
  }
 

	
 
  Tooltip.prototype.hasContent = function () {
 
    return this.getTitle()
 
  }
 

	
 
  Tooltip.prototype.getPosition = function ($element) {
 
    $element   = $element || this.$element
 

	
 
    var el     = $element[0]
 
    var isBody = el.tagName == 'BODY'
 

	
 
    var elRect    = el.getBoundingClientRect()
 
    if (elRect.width == null) {
 
      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
 
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
 
    }
 
    var isSvg = window.SVGElement && el instanceof window.SVGElement
 
    // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
 
    // See https://github.com/twbs/bootstrap/issues/20280
 
    var elOffset  = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
 
    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
 
    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
 

	
 
    return $.extend({}, elRect, scroll, outerDims, elOffset)
 
  }
 

	
 
  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
 
    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
 
        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
 

	
 
  }
 

	
 
  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
 
    var delta = { top: 0, left: 0 }
 
    if (!this.$viewport) return delta
 

	
 
    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
 
    var viewportDimensions = this.getPosition(this.$viewport)
 

	
 
    if (/right|left/.test(placement)) {
 
      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
 
      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
 
      if (topEdgeOffset < viewportDimensions.top) { // top overflow
 
        delta.top = viewportDimensions.top - topEdgeOffset
 
      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
 
        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
 
      }
 
    } else {
 
      var leftEdgeOffset  = pos.left - viewportPadding
 
      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
 
      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
 
        delta.left = viewportDimensions.left - leftEdgeOffset
 
      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
 
        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
 
      }
 
    }
 

	
 
    return delta
 
  }
 

	
 
  Tooltip.prototype.getTitle = function () {
 
    var title
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    title = $e.attr('data-original-title')
 
      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
 

	
 
    return title
 
  }
 

	
 
  Tooltip.prototype.getUID = function (prefix) {
 
    do prefix += ~~(Math.random() * 1000000)
 
    while (document.getElementById(prefix))
 
    return prefix
 
  }
 

	
 
  Tooltip.prototype.tip = function () {
 
    if (!this.$tip) {
 
      this.$tip = $(this.options.template)
 
      if (this.$tip.length != 1) {
 
        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
 
      }
 
    }
 
    return this.$tip
 
  }
 

	
 
  Tooltip.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
 
  }
 

	
 
  Tooltip.prototype.enable = function () {
 
    this.enabled = true
 
  }
 

	
 
  Tooltip.prototype.disable = function () {
 
    this.enabled = false
 
  }
 

	
 
  Tooltip.prototype.toggleEnabled = function () {
 
    this.enabled = !this.enabled
 
  }
 

	
 
  Tooltip.prototype.toggle = function (e) {
 
    var self = this
 
    if (e) {
 
      self = $(e.currentTarget).data('bs.' + this.type)
 
      if (!self) {
 
        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
 
        $(e.currentTarget).data('bs.' + this.type, self)
 
      }
 
    }
 

	
 
    if (e) {
 
      self.inState.click = !self.inState.click
 
      if (self.isInStateTrue()) self.enter(self)
 
      else self.leave(self)
 
    } else {
 
      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
 
    }
 
  }
 

	
 
  Tooltip.prototype.destroy = function () {
 
    var that = this
 
    clearTimeout(this.timeout)
 
    this.hide(function () {
 
      that.$element.off('.' + that.type).removeData('bs.' + that.type)
 
      if (that.$tip) {
 
        that.$tip.detach()
 
      }
 
      that.$tip = null
 
      that.$arrow = null
 
      that.$viewport = null
 
      that.$element = null
 
    })
 
  }
 

	
 

	
 
  // TOOLTIP PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.tooltip')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tooltip
 

	
 
  $.fn.tooltip             = Plugin
 
  $.fn.tooltip.Constructor = Tooltip
 

	
 

	
 
  // TOOLTIP NO CONFLICT
 
  // ===================
 

	
 
  $.fn.tooltip.noConflict = function () {
 
    $.fn.tooltip = old
 
    return this
 
  }
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: popover.js v3.3.7
 
 * http://getbootstrap.com/javascript/#popovers
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // POPOVER PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Popover = function (element, options) {
 
    this.init('popover', element, options)
 
  }
 

	
 
  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
 

	
 
  Popover.VERSION  = '3.3.7'
 

	
 
  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
 
    placement: 'right',
 
    trigger: 'click',
 
    content: '',
 
    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
 
  })
 

	
 

	
 
  // NOTE: POPOVER EXTENDS tooltip.js
 
  // ================================
 

	
 
  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
 

	
 
  Popover.prototype.constructor = Popover
 

	
 
  Popover.prototype.getDefaults = function () {
 
    return Popover.DEFAULTS
 
  }
 

	
 
  Popover.prototype.setContent = function () {
 
    var $tip    = this.tip()
 
    var title   = this.getTitle()
 
    var content = this.getContent()
 

	
 
    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
 
    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
 
      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
 
    ](content)
 

	
 
    $tip.removeClass('fade top bottom left right in')
 

	
 
    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
 
    // this manually by checking the contents.
 
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
 
  }
 

	
 
  Popover.prototype.hasContent = function () {
 
    return this.getTitle() || this.getContent()
 
  }
 

	
 
  Popover.prototype.getContent = function () {
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    return $e.attr('data-content')
 
      || (typeof o.content == 'function' ?
 
            o.content.call($e[0]) :
 
            o.content)
 
  }
 

	
 
  Popover.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
 
  }
 

	
 

	
 
  // POPOVER PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.popover')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.popover
 

	
 
  $.fn.popover             = Plugin
 
  $.fn.popover.Constructor = Popover
 

	
 

	
 
  // POPOVER NO CONFLICT
 
  // ===================
 

	
 
  $.fn.popover.noConflict = function () {
 
    $.fn.popover = old
 
    return this
 
  }
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: scrollspy.js v3.3.7
 
 * http://getbootstrap.com/javascript/#scrollspy
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // SCROLLSPY CLASS DEFINITION
 
  // ==========================
 

	
 
  function ScrollSpy(element, options) {
 
    this.$body          = $(document.body)
 
    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
 
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
 
    this.selector       = (this.options.target || '') + ' .nav li > a'
 
    this.offsets        = []
 
    this.targets        = []
 
    this.activeTarget   = null
 
    this.scrollHeight   = 0
 

	
 
    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
 
    this.refresh()
 
    this.process()
 
  }
 

	
 
  ScrollSpy.VERSION  = '3.3.7'
 

	
 
  ScrollSpy.DEFAULTS = {
 
    offset: 10
 
  }
 

	
 
  ScrollSpy.prototype.getScrollHeight = function () {
 
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
 
  }
 

	
 
  ScrollSpy.prototype.refresh = function () {
 
    var that          = this
 
    var offsetMethod  = 'offset'
 
    var offsetBase    = 0
 

	
 
    this.offsets      = []
 
    this.targets      = []
 
    this.scrollHeight = this.getScrollHeight()
 

	
 
    if (!$.isWindow(this.$scrollElement[0])) {
 
      offsetMethod = 'position'
 
      offsetBase   = this.$scrollElement.scrollTop()
 
    }
 

	
 
    this.$body
 
      .find(this.selector)
 
      .map(function () {
 
        var $el   = $(this)
 
        var href  = $el.data('target') || $el.attr('href')
 
        var $href = /^#./.test(href) && $(href)
 

	
 
        return ($href
 
          && $href.length
 
          && $href.is(':visible')
 
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
 
      })
 
      .sort(function (a, b) { return a[0] - b[0] })
 
      .each(function () {
 
        that.offsets.push(this[0])
 
        that.targets.push(this[1])
 
      })
 
  }
 

	
 
  ScrollSpy.prototype.process = function () {
 
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
 
    var scrollHeight = this.getScrollHeight()
 
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
 
    var offsets      = this.offsets
 
    var targets      = this.targets
 
    var activeTarget = this.activeTarget
 
    var i
 

	
 
    if (this.scrollHeight != scrollHeight) {
 
      this.refresh()
 
    }
 

	
 
    if (scrollTop >= maxScroll) {
 
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
 
    }
 

	
 
    if (activeTarget && scrollTop < offsets[0]) {
 
      this.activeTarget = null
 
      return this.clear()
 
    }
 

	
 
    for (i = offsets.length; i--;) {
 
      activeTarget != targets[i]
 
        && scrollTop >= offsets[i]
 
        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
 
        && this.activate(targets[i])
 
    }
 
  }
 

	
 
  ScrollSpy.prototype.activate = function (target) {
 
    this.activeTarget = target
 

	
 
    this.clear()
 

	
 
    var selector = this.selector +
 
      '[data-target="' + target + '"],' +
 
      this.selector + '[href="' + target + '"]'
 

	
 
    var active = $(selector)
 
      .parents('li')
 
      .addClass('active')
 

	
 
    if (active.parent('.dropdown-menu').length) {
 
      active = active
 
        .closest('li.dropdown')
 
        .addClass('active')
 
    }
 

	
 
    active.trigger('activate.bs.scrollspy')
 
  }
 

	
 
  ScrollSpy.prototype.clear = function () {
 
    $(this.selector)
 
      .parentsUntil(this.options.target, '.active')
 
      .removeClass('active')
 
  }
 

	
 

	
 
  // SCROLLSPY PLUGIN DEFINITION
 
  // ===========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.scrollspy')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.scrollspy
 

	
 
  $.fn.scrollspy             = Plugin
 
  $.fn.scrollspy.Constructor = ScrollSpy
 

	
 

	
 
  // SCROLLSPY NO CONFLICT
 
  // =====================
 

	
 
  $.fn.scrollspy.noConflict = function () {
 
    $.fn.scrollspy = old
 
    return this
 
  }
 

	
 

	
 
  // SCROLLSPY DATA-API
 
  // ==================
 

	
 
  $(window).on('load.bs.scrollspy.data-api', function () {
 
    $('[data-spy="scroll"]').each(function () {
 
      var $spy = $(this)
 
      Plugin.call($spy, $spy.data())
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: tab.js v3.3.7
 
 * http://getbootstrap.com/javascript/#tabs
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TAB CLASS DEFINITION
 
  // ====================
 

	
 
  var Tab = function (element) {
 
    // jscs:disable requireDollarBeforejQueryAssignment
 
    this.element = $(element)
 
    // jscs:enable requireDollarBeforejQueryAssignment
 
  }
 

	
 
  Tab.VERSION = '3.3.7'
 

	
 
  Tab.TRANSITION_DURATION = 150
 

	
 
  Tab.prototype.show = function () {
 
    var $this    = this.element
 
    var $ul      = $this.closest('ul:not(.dropdown-menu)')
 
    var selector = $this.data('target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    if ($this.parent('li').hasClass('active')) return
 

	
 
    var $previous = $ul.find('.active:last a')
 
    var hideEvent = $.Event('hide.bs.tab', {
 
      relatedTarget: $this[0]
 
    })
 
    var showEvent = $.Event('show.bs.tab', {
 
      relatedTarget: $previous[0]
 
    })
 

	
 
    $previous.trigger(hideEvent)
 
    $this.trigger(showEvent)
 

	
 
    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
 

	
 
    var $target = $(selector)
 

	
 
    this.activate($this.closest('li'), $ul)
 
    this.activate($target, $target.parent(), function () {
 
      $previous.trigger({
 
        type: 'hidden.bs.tab',
 
        relatedTarget: $this[0]
 
      })
 
      $this.trigger({
 
        type: 'shown.bs.tab',
 
        relatedTarget: $previous[0]
 
      })
 
    })
 
  }
 

	
 
  Tab.prototype.activate = function (element, container, callback) {
 
    var $active    = container.find('> .active')
 
    var transition = callback
 
      && $.support.transition
 
      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
 

	
 
    function next() {
 
      $active
 
        .removeClass('active')
 
        .find('> .dropdown-menu > .active')
 
          .removeClass('active')
 
        .end()
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', false)
 

	
 
      element
 
        .addClass('active')
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', true)
 

	
 
      if (transition) {
 
        element[0].offsetWidth // reflow for transition
 
        element.addClass('in')
 
      } else {
 
        element.removeClass('fade')
 
      }
 

	
 
      if (element.parent('.dropdown-menu').length) {
 
        element
 
          .closest('li.dropdown')
 
            .addClass('active')
 
          .end()
 
          .find('[data-toggle="tab"]')
 
            .attr('aria-expanded', true)
 
      }
 

	
 
      callback && callback()
 
    }
 

	
 
    $active.length && transition ?
 
      $active
 
        .one('bsTransitionEnd', next)
 
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
 
      next()
 

	
 
    $active.removeClass('in')
 
  }
 

	
 

	
 
  // TAB PLUGIN DEFINITION
 
  // =====================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.tab')
 

	
 
      if (!data) $this.data('bs.tab', (data = new Tab(this)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tab
 

	
 
  $.fn.tab             = Plugin
 
  $.fn.tab.Constructor = Tab
 

	
 

	
 
  // TAB NO CONFLICT
 
  // ===============
 

	
 
  $.fn.tab.noConflict = function () {
 
    $.fn.tab = old
 
    return this
 
  }
 

	
 

	
 
  // TAB DATA-API
 
  // ============
 

	
 
  var clickHandler = function (e) {
 
    e.preventDefault()
 
    Plugin.call($(this), 'show')
 
  }
 

	
 
  $(document)
 
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
 
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
 

	
 
}(jQuery);
 

	
 
/* ========================================================================
 
 * Bootstrap: affix.js v3.3.7
 
 * http://getbootstrap.com/javascript/#affix
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // AFFIX CLASS DEFINITION
 
  // ======================
 

	
 
  var Affix = function (element, options) {
 
    this.options = $.extend({}, Affix.DEFAULTS, options)
 

	
 
    this.$target = $(this.options.target)
 
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
 
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
 

	
 
    this.$element     = $(element)
 
    this.affixed      = null
 
    this.unpin        = null
 
    this.pinnedOffset = null
 

	
 
    this.checkPosition()
 
  }
 

	
 
  Affix.VERSION  = '3.3.7'
 

	
 
  Affix.RESET    = 'affix affix-top affix-bottom'
 

	
 
  Affix.DEFAULTS = {
 
    offset: 0,
 
    target: window
 
  }
 

	
 
  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
 
    var scrollTop    = this.$target.scrollTop()
 
    var position     = this.$element.offset()
 
    var targetHeight = this.$target.height()
 

	
 
    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
 

	
 
    if (this.affixed == 'bottom') {
 
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
 
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
 
    }
 

	
 
    var initializing   = this.affixed == null
 
    var colliderTop    = initializing ? scrollTop : position.top
 
    var colliderHeight = initializing ? targetHeight : height
 

	
 
    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
 
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
 

	
 
    return false
 
  }
 

	
 
  Affix.prototype.getPinnedOffset = function () {
 
    if (this.pinnedOffset) return this.pinnedOffset
 
    this.$element.removeClass(Affix.RESET).addClass('affix')
 
    var scrollTop = this.$target.scrollTop()
 
    var position  = this.$element.offset()
 
    return (this.pinnedOffset = position.top - scrollTop)
 
  }
 

	
 
  Affix.prototype.checkPositionWithEventLoop = function () {
 
    setTimeout($.proxy(this.checkPosition, this), 1)
 
  }
 

	
 
  Affix.prototype.checkPosition = function () {
 
    if (!this.$element.is(':visible')) return
 

	
 
    var height       = this.$element.height()
 
    var offset       = this.options.offset
 
    var offsetTop    = offset.top
 
    var offsetBottom = offset.bottom
 
    var scrollHeight = Math.max($(document).height(), $(document.body).height())
 

	
 
    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
 
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
 
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
 

	
 
    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
 

	
 
    if (this.affixed != affix) {
 
      if (this.unpin != null) this.$element.css('top', '')
 

	
 
      var affixType = 'affix' + (affix ? '-' + affix : '')
 
      var e         = $.Event(affixType + '.bs.affix')
 

	
 
      this.$element.trigger(e)
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      this.affixed = affix
 
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
 

	
 
      this.$element
 
        .removeClass(Affix.RESET)
 
        .addClass(affixType)
 
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
 
    }
 

	
 
    if (affix == 'bottom') {
 
      this.$element.offset({
 
        top: scrollHeight - height - offsetBottom
 
      })
 
    }
 
  }
 

	
 

	
 
  // AFFIX PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.affix')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.affix
 

	
 
  $.fn.affix             = Plugin
 
  $.fn.affix.Constructor = Affix
 

	
 

	
 
  // AFFIX NO CONFLICT
 
  // =================
 

	
 
  $.fn.affix.noConflict = function () {
 
    $.fn.affix = old
 
    return this
 
  }
 

	
 

	
 
  // AFFIX DATA-API
 
  // ==============
 

	
 
  $(window).on('load', function () {
 
    $('[data-spy="affix"]').each(function () {
 
      var $spy = $(this)
 
      var data = $spy.data()
 

	
 
      data.offset = data.offset || {}
 

	
 
      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
 
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
 

	
 
      Plugin.call($spy, data)
 
    })
 
  })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap.min.js
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under the MIT license
 
 */
 
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
 
this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
...
 
\ No newline at end of file
static/bootstrap/javascripts/bootstrap/affix.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: affix.js v3.3.7
 
 * http://getbootstrap.com/javascript/#affix
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // AFFIX CLASS DEFINITION
 
  // ======================
 

	
 
  var Affix = function (element, options) {
 
    this.options = $.extend({}, Affix.DEFAULTS, options)
 

	
 
    this.$target = $(this.options.target)
 
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
 
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
 

	
 
    this.$element     = $(element)
 
    this.affixed      = null
 
    this.unpin        = null
 
    this.pinnedOffset = null
 

	
 
    this.checkPosition()
 
  }
 

	
 
  Affix.VERSION  = '3.3.7'
 

	
 
  Affix.RESET    = 'affix affix-top affix-bottom'
 

	
 
  Affix.DEFAULTS = {
 
    offset: 0,
 
    target: window
 
  }
 

	
 
  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
 
    var scrollTop    = this.$target.scrollTop()
 
    var position     = this.$element.offset()
 
    var targetHeight = this.$target.height()
 

	
 
    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
 

	
 
    if (this.affixed == 'bottom') {
 
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
 
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
 
    }
 

	
 
    var initializing   = this.affixed == null
 
    var colliderTop    = initializing ? scrollTop : position.top
 
    var colliderHeight = initializing ? targetHeight : height
 

	
 
    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
 
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
 

	
 
    return false
 
  }
 

	
 
  Affix.prototype.getPinnedOffset = function () {
 
    if (this.pinnedOffset) return this.pinnedOffset
 
    this.$element.removeClass(Affix.RESET).addClass('affix')
 
    var scrollTop = this.$target.scrollTop()
 
    var position  = this.$element.offset()
 
    return (this.pinnedOffset = position.top - scrollTop)
 
  }
 

	
 
  Affix.prototype.checkPositionWithEventLoop = function () {
 
    setTimeout($.proxy(this.checkPosition, this), 1)
 
  }
 

	
 
  Affix.prototype.checkPosition = function () {
 
    if (!this.$element.is(':visible')) return
 

	
 
    var height       = this.$element.height()
 
    var offset       = this.options.offset
 
    var offsetTop    = offset.top
 
    var offsetBottom = offset.bottom
 
    var scrollHeight = Math.max($(document).height(), $(document.body).height())
 

	
 
    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
 
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
 
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
 

	
 
    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
 

	
 
    if (this.affixed != affix) {
 
      if (this.unpin != null) this.$element.css('top', '')
 

	
 
      var affixType = 'affix' + (affix ? '-' + affix : '')
 
      var e         = $.Event(affixType + '.bs.affix')
 

	
 
      this.$element.trigger(e)
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      this.affixed = affix
 
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
 

	
 
      this.$element
 
        .removeClass(Affix.RESET)
 
        .addClass(affixType)
 
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
 
    }
 

	
 
    if (affix == 'bottom') {
 
      this.$element.offset({
 
        top: scrollHeight - height - offsetBottom
 
      })
 
    }
 
  }
 

	
 

	
 
  // AFFIX PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.affix')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.affix
 

	
 
  $.fn.affix             = Plugin
 
  $.fn.affix.Constructor = Affix
 

	
 

	
 
  // AFFIX NO CONFLICT
 
  // =================
 

	
 
  $.fn.affix.noConflict = function () {
 
    $.fn.affix = old
 
    return this
 
  }
 

	
 

	
 
  // AFFIX DATA-API
 
  // ==============
 

	
 
  $(window).on('load', function () {
 
    $('[data-spy="affix"]').each(function () {
 
      var $spy = $(this)
 
      var data = $spy.data()
 

	
 
      data.offset = data.offset || {}
 

	
 
      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
 
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
 

	
 
      Plugin.call($spy, data)
 
    })
 
  })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/alert.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: alert.js v3.3.7
 
 * http://getbootstrap.com/javascript/#alerts
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // ALERT CLASS DEFINITION
 
  // ======================
 

	
 
  var dismiss = '[data-dismiss="alert"]'
 
  var Alert   = function (el) {
 
    $(el).on('click', dismiss, this.close)
 
  }
 

	
 
  Alert.VERSION = '3.3.7'
 

	
 
  Alert.TRANSITION_DURATION = 150
 

	
 
  Alert.prototype.close = function (e) {
 
    var $this    = $(this)
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = $(selector === '#' ? [] : selector)
 

	
 
    if (e) e.preventDefault()
 

	
 
    if (!$parent.length) {
 
      $parent = $this.closest('.alert')
 
    }
 

	
 
    $parent.trigger(e = $.Event('close.bs.alert'))
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $parent.removeClass('in')
 

	
 
    function removeElement() {
 
      // detach from parent, fire event then clean up data
 
      $parent.detach().trigger('closed.bs.alert').remove()
 
    }
 

	
 
    $.support.transition && $parent.hasClass('fade') ?
 
      $parent
 
        .one('bsTransitionEnd', removeElement)
 
        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
 
      removeElement()
 
  }
 

	
 

	
 
  // ALERT PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.alert')
 

	
 
      if (!data) $this.data('bs.alert', (data = new Alert(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.alert
 

	
 
  $.fn.alert             = Plugin
 
  $.fn.alert.Constructor = Alert
 

	
 

	
 
  // ALERT NO CONFLICT
 
  // =================
 

	
 
  $.fn.alert.noConflict = function () {
 
    $.fn.alert = old
 
    return this
 
  }
 

	
 

	
 
  // ALERT DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/button.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: button.js v3.3.7
 
 * http://getbootstrap.com/javascript/#buttons
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // BUTTON PUBLIC CLASS DEFINITION
 
  // ==============================
 

	
 
  var Button = function (element, options) {
 
    this.$element  = $(element)
 
    this.options   = $.extend({}, Button.DEFAULTS, options)
 
    this.isLoading = false
 
  }
 

	
 
  Button.VERSION  = '3.3.7'
 

	
 
  Button.DEFAULTS = {
 
    loadingText: 'loading...'
 
  }
 

	
 
  Button.prototype.setState = function (state) {
 
    var d    = 'disabled'
 
    var $el  = this.$element
 
    var val  = $el.is('input') ? 'val' : 'html'
 
    var data = $el.data()
 

	
 
    state += 'Text'
 

	
 
    if (data.resetText == null) $el.data('resetText', $el[val]())
 

	
 
    // push to event loop to allow forms to submit
 
    setTimeout($.proxy(function () {
 
      $el[val](data[state] == null ? this.options[state] : data[state])
 

	
 
      if (state == 'loadingText') {
 
        this.isLoading = true
 
        $el.addClass(d).attr(d, d).prop(d, true)
 
      } else if (this.isLoading) {
 
        this.isLoading = false
 
        $el.removeClass(d).removeAttr(d).prop(d, false)
 
      }
 
    }, this), 0)
 
  }
 

	
 
  Button.prototype.toggle = function () {
 
    var changed = true
 
    var $parent = this.$element.closest('[data-toggle="buttons"]')
 

	
 
    if ($parent.length) {
 
      var $input = this.$element.find('input')
 
      if ($input.prop('type') == 'radio') {
 
        if ($input.prop('checked')) changed = false
 
        $parent.find('.active').removeClass('active')
 
        this.$element.addClass('active')
 
      } else if ($input.prop('type') == 'checkbox') {
 
        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
 
        this.$element.toggleClass('active')
 
      }
 
      $input.prop('checked', this.$element.hasClass('active'))
 
      if (changed) $input.trigger('change')
 
    } else {
 
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
 
      this.$element.toggleClass('active')
 
    }
 
  }
 

	
 

	
 
  // BUTTON PLUGIN DEFINITION
 
  // ========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.button')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.button', (data = new Button(this, options)))
 

	
 
      if (option == 'toggle') data.toggle()
 
      else if (option) data.setState(option)
 
    })
 
  }
 

	
 
  var old = $.fn.button
 

	
 
  $.fn.button             = Plugin
 
  $.fn.button.Constructor = Button
 

	
 

	
 
  // BUTTON NO CONFLICT
 
  // ==================
 

	
 
  $.fn.button.noConflict = function () {
 
    $.fn.button = old
 
    return this
 
  }
 

	
 

	
 
  // BUTTON DATA-API
 
  // ===============
 

	
 
  $(document)
 
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      var $btn = $(e.target).closest('.btn')
 
      Plugin.call($btn, 'toggle')
 
      if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
 
        // Prevent double click on radios, and the double selections (so cancellation) on checkboxes
 
        e.preventDefault()
 
        // The target component still receive the focus
 
        if ($btn.is('input,button')) $btn.trigger('focus')
 
        else $btn.find('input:visible,button:visible').first().trigger('focus')
 
      }
 
    })
 
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
 
    })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/carousel.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: carousel.js v3.3.7
 
 * http://getbootstrap.com/javascript/#carousel
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CAROUSEL CLASS DEFINITION
 
  // =========================
 

	
 
  var Carousel = function (element, options) {
 
    this.$element    = $(element)
 
    this.$indicators = this.$element.find('.carousel-indicators')
 
    this.options     = options
 
    this.paused      = null
 
    this.sliding     = null
 
    this.interval    = null
 
    this.$active     = null
 
    this.$items      = null
 

	
 
    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
 

	
 
    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
 
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
 
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
 
  }
 

	
 
  Carousel.VERSION  = '3.3.7'
 

	
 
  Carousel.TRANSITION_DURATION = 600
 

	
 
  Carousel.DEFAULTS = {
 
    interval: 5000,
 
    pause: 'hover',
 
    wrap: true,
 
    keyboard: true
 
  }
 

	
 
  Carousel.prototype.keydown = function (e) {
 
    if (/input|textarea/i.test(e.target.tagName)) return
 
    switch (e.which) {
 
      case 37: this.prev(); break
 
      case 39: this.next(); break
 
      default: return
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  Carousel.prototype.cycle = function (e) {
 
    e || (this.paused = false)
 

	
 
    this.interval && clearInterval(this.interval)
 

	
 
    this.options.interval
 
      && !this.paused
 
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.getItemIndex = function (item) {
 
    this.$items = item.parent().children('.item')
 
    return this.$items.index(item || this.$active)
 
  }
 

	
 
  Carousel.prototype.getItemForDirection = function (direction, active) {
 
    var activeIndex = this.getItemIndex(active)
 
    var willWrap = (direction == 'prev' && activeIndex === 0)
 
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
 
    if (willWrap && !this.options.wrap) return active
 
    var delta = direction == 'prev' ? -1 : 1
 
    var itemIndex = (activeIndex + delta) % this.$items.length
 
    return this.$items.eq(itemIndex)
 
  }
 

	
 
  Carousel.prototype.to = function (pos) {
 
    var that        = this
 
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
 

	
 
    if (pos > (this.$items.length - 1) || pos < 0) return
 

	
 
    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
 
    if (activeIndex == pos) return this.pause().cycle()
 

	
 
    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
 
  }
 

	
 
  Carousel.prototype.pause = function (e) {
 
    e || (this.paused = true)
 

	
 
    if (this.$element.find('.next, .prev').length && $.support.transition) {
 
      this.$element.trigger($.support.transition.end)
 
      this.cycle(true)
 
    }
 

	
 
    this.interval = clearInterval(this.interval)
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.next = function () {
 
    if (this.sliding) return
 
    return this.slide('next')
 
  }
 

	
 
  Carousel.prototype.prev = function () {
 
    if (this.sliding) return
 
    return this.slide('prev')
 
  }
 

	
 
  Carousel.prototype.slide = function (type, next) {
 
    var $active   = this.$element.find('.item.active')
 
    var $next     = next || this.getItemForDirection(type, $active)
 
    var isCycling = this.interval
 
    var direction = type == 'next' ? 'left' : 'right'
 
    var that      = this
 

	
 
    if ($next.hasClass('active')) return (this.sliding = false)
 

	
 
    var relatedTarget = $next[0]
 
    var slideEvent = $.Event('slide.bs.carousel', {
 
      relatedTarget: relatedTarget,
 
      direction: direction
 
    })
 
    this.$element.trigger(slideEvent)
 
    if (slideEvent.isDefaultPrevented()) return
 

	
 
    this.sliding = true
 

	
 
    isCycling && this.pause()
 

	
 
    if (this.$indicators.length) {
 
      this.$indicators.find('.active').removeClass('active')
 
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
 
      $nextIndicator && $nextIndicator.addClass('active')
 
    }
 

	
 
    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
 
    if ($.support.transition && this.$element.hasClass('slide')) {
 
      $next.addClass(type)
 
      $next[0].offsetWidth // force reflow
 
      $active.addClass(direction)
 
      $next.addClass(direction)
 
      $active
 
        .one('bsTransitionEnd', function () {
 
          $next.removeClass([type, direction].join(' ')).addClass('active')
 
          $active.removeClass(['active', direction].join(' '))
 
          that.sliding = false
 
          setTimeout(function () {
 
            that.$element.trigger(slidEvent)
 
          }, 0)
 
        })
 
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
 
    } else {
 
      $active.removeClass('active')
 
      $next.addClass('active')
 
      this.sliding = false
 
      this.$element.trigger(slidEvent)
 
    }
 

	
 
    isCycling && this.cycle()
 

	
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.carousel')
 
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
 
      var action  = typeof option == 'string' ? option : options.slide
 

	
 
      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
 
      if (typeof option == 'number') data.to(option)
 
      else if (action) data[action]()
 
      else if (options.interval) data.pause().cycle()
 
    })
 
  }
 

	
 
  var old = $.fn.carousel
 

	
 
  $.fn.carousel             = Plugin
 
  $.fn.carousel.Constructor = Carousel
 

	
 

	
 
  // CAROUSEL NO CONFLICT
 
  // ====================
 

	
 
  $.fn.carousel.noConflict = function () {
 
    $.fn.carousel = old
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL DATA-API
 
  // =================
 

	
 
  var clickHandler = function (e) {
 
    var href
 
    var $this   = $(this)
 
    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
 
    if (!$target.hasClass('carousel')) return
 
    var options = $.extend({}, $target.data(), $this.data())
 
    var slideIndex = $this.attr('data-slide-to')
 
    if (slideIndex) options.interval = false
 

	
 
    Plugin.call($target, options)
 

	
 
    if (slideIndex) {
 
      $target.data('bs.carousel').to(slideIndex)
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  $(document)
 
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
 
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
 

	
 
  $(window).on('load', function () {
 
    $('[data-ride="carousel"]').each(function () {
 
      var $carousel = $(this)
 
      Plugin.call($carousel, $carousel.data())
 
    })
 
  })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/collapse.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: collapse.js v3.3.7
 
 * http://getbootstrap.com/javascript/#collapse
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 
/* jshint latedef: false */
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // COLLAPSE PUBLIC CLASS DEFINITION
 
  // ================================
 

	
 
  var Collapse = function (element, options) {
 
    this.$element      = $(element)
 
    this.options       = $.extend({}, Collapse.DEFAULTS, options)
 
    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
 
                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
 
    this.transitioning = null
 

	
 
    if (this.options.parent) {
 
      this.$parent = this.getParent()
 
    } else {
 
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
 
    }
 

	
 
    if (this.options.toggle) this.toggle()
 
  }
 

	
 
  Collapse.VERSION  = '3.3.7'
 

	
 
  Collapse.TRANSITION_DURATION = 350
 

	
 
  Collapse.DEFAULTS = {
 
    toggle: true
 
  }
 

	
 
  Collapse.prototype.dimension = function () {
 
    var hasWidth = this.$element.hasClass('width')
 
    return hasWidth ? 'width' : 'height'
 
  }
 

	
 
  Collapse.prototype.show = function () {
 
    if (this.transitioning || this.$element.hasClass('in')) return
 

	
 
    var activesData
 
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
 

	
 
    if (actives && actives.length) {
 
      activesData = actives.data('bs.collapse')
 
      if (activesData && activesData.transitioning) return
 
    }
 

	
 
    var startEvent = $.Event('show.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    if (actives && actives.length) {
 
      Plugin.call(actives, 'hide')
 
      activesData || actives.data('bs.collapse', null)
 
    }
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element
 
      .removeClass('collapse')
 
      .addClass('collapsing')[dimension](0)
 
      .attr('aria-expanded', true)
 

	
 
    this.$trigger
 
      .removeClass('collapsed')
 
      .attr('aria-expanded', true)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse in')[dimension]('')
 
      this.transitioning = 0
 
      this.$element
 
        .trigger('shown.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
 

	
 
    this.$element
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
 
  }
 

	
 
  Collapse.prototype.hide = function () {
 
    if (this.transitioning || !this.$element.hasClass('in')) return
 

	
 
    var startEvent = $.Event('hide.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
 

	
 
    this.$element
 
      .addClass('collapsing')
 
      .removeClass('collapse in')
 
      .attr('aria-expanded', false)
 

	
 
    this.$trigger
 
      .addClass('collapsed')
 
      .attr('aria-expanded', false)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.transitioning = 0
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse')
 
        .trigger('hidden.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    this.$element
 
      [dimension](0)
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
 
  }
 

	
 
  Collapse.prototype.toggle = function () {
 
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
 
  }
 

	
 
  Collapse.prototype.getParent = function () {
 
    return $(this.options.parent)
 
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
 
      .each($.proxy(function (i, element) {
 
        var $element = $(element)
 
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
 
      }, this))
 
      .end()
 
  }
 

	
 
  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
 
    var isOpen = $element.hasClass('in')
 

	
 
    $element.attr('aria-expanded', isOpen)
 
    $trigger
 
      .toggleClass('collapsed', !isOpen)
 
      .attr('aria-expanded', isOpen)
 
  }
 

	
 
  function getTargetFromTrigger($trigger) {
 
    var href
 
    var target = $trigger.attr('data-target')
 
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
 

	
 
    return $(target)
 
  }
 

	
 

	
 
  // COLLAPSE PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.collapse')
 
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
 
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.collapse
 

	
 
  $.fn.collapse             = Plugin
 
  $.fn.collapse.Constructor = Collapse
 

	
 

	
 
  // COLLAPSE NO CONFLICT
 
  // ====================
 

	
 
  $.fn.collapse.noConflict = function () {
 
    $.fn.collapse = old
 
    return this
 
  }
 

	
 

	
 
  // COLLAPSE DATA-API
 
  // =================
 

	
 
  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
 
    var $this   = $(this)
 

	
 
    if (!$this.attr('data-target')) e.preventDefault()
 

	
 
    var $target = getTargetFromTrigger($this)
 
    var data    = $target.data('bs.collapse')
 
    var option  = data ? 'toggle' : $this.data()
 

	
 
    Plugin.call($target, option)
 
  })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/dropdown.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: dropdown.js v3.3.7
 
 * http://getbootstrap.com/javascript/#dropdowns
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // DROPDOWN CLASS DEFINITION
 
  // =========================
 

	
 
  var backdrop = '.dropdown-backdrop'
 
  var toggle   = '[data-toggle="dropdown"]'
 
  var Dropdown = function (element) {
 
    $(element).on('click.bs.dropdown', this.toggle)
 
  }
 

	
 
  Dropdown.VERSION = '3.3.7'
 

	
 
  function getParent($this) {
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = selector && $(selector)
 

	
 
    return $parent && $parent.length ? $parent : $this.parent()
 
  }
 

	
 
  function clearMenus(e) {
 
    if (e && e.which === 3) return
 
    $(backdrop).remove()
 
    $(toggle).each(function () {
 
      var $this         = $(this)
 
      var $parent       = getParent($this)
 
      var relatedTarget = { relatedTarget: this }
 

	
 
      if (!$parent.hasClass('open')) return
 

	
 
      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
 

	
 
      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this.attr('aria-expanded', 'false')
 
      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
 
    })
 
  }
 

	
 
  Dropdown.prototype.toggle = function (e) {
 
    var $this = $(this)
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    clearMenus()
 

	
 
    if (!isActive) {
 
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
 
        // if mobile we use a backdrop because click events don't delegate
 
        $(document.createElement('div'))
 
          .addClass('dropdown-backdrop')
 
          .insertAfter($(this))
 
          .on('click', clearMenus)
 
      }
 

	
 
      var relatedTarget = { relatedTarget: this }
 
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this
 
        .trigger('focus')
 
        .attr('aria-expanded', 'true')
 

	
 
      $parent
 
        .toggleClass('open')
 
        .trigger($.Event('shown.bs.dropdown', relatedTarget))
 
    }
 

	
 
    return false
 
  }
 

	
 
  Dropdown.prototype.keydown = function (e) {
 
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
 

	
 
    var $this = $(this)
 

	
 
    e.preventDefault()
 
    e.stopPropagation()
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    if (!isActive && e.which != 27 || isActive && e.which == 27) {
 
      if (e.which == 27) $parent.find(toggle).trigger('focus')
 
      return $this.trigger('click')
 
    }
 

	
 
    var desc = ' li:not(.disabled):visible a'
 
    var $items = $parent.find('.dropdown-menu' + desc)
 

	
 
    if (!$items.length) return
 

	
 
    var index = $items.index(e.target)
 

	
 
    if (e.which == 38 && index > 0)                 index--         // up
 
    if (e.which == 40 && index < $items.length - 1) index++         // down
 
    if (!~index)                                    index = 0
 

	
 
    $items.eq(index).trigger('focus')
 
  }
 

	
 

	
 
  // DROPDOWN PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.dropdown')
 

	
 
      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.dropdown
 

	
 
  $.fn.dropdown             = Plugin
 
  $.fn.dropdown.Constructor = Dropdown
 

	
 

	
 
  // DROPDOWN NO CONFLICT
 
  // ====================
 

	
 
  $.fn.dropdown.noConflict = function () {
 
    $.fn.dropdown = old
 
    return this
 
  }
 

	
 

	
 
  // APPLY TO STANDARD DROPDOWN ELEMENTS
 
  // ===================================
 

	
 
  $(document)
 
    .on('click.bs.dropdown.data-api', clearMenus)
 
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
 
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
 
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
 
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/modal.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: modal.js v3.3.7
 
 * http://getbootstrap.com/javascript/#modals
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // MODAL CLASS DEFINITION
 
  // ======================
 

	
 
  var Modal = function (element, options) {
 
    this.options             = options
 
    this.$body               = $(document.body)
 
    this.$element            = $(element)
 
    this.$dialog             = this.$element.find('.modal-dialog')
 
    this.$backdrop           = null
 
    this.isShown             = null
 
    this.originalBodyPad     = null
 
    this.scrollbarWidth      = 0
 
    this.ignoreBackdropClick = false
 

	
 
    if (this.options.remote) {
 
      this.$element
 
        .find('.modal-content')
 
        .load(this.options.remote, $.proxy(function () {
 
          this.$element.trigger('loaded.bs.modal')
 
        }, this))
 
    }
 
  }
 

	
 
  Modal.VERSION  = '3.3.7'
 

	
 
  Modal.TRANSITION_DURATION = 300
 
  Modal.BACKDROP_TRANSITION_DURATION = 150
 

	
 
  Modal.DEFAULTS = {
 
    backdrop: true,
 
    keyboard: true,
 
    show: true
 
  }
 

	
 
  Modal.prototype.toggle = function (_relatedTarget) {
 
    return this.isShown ? this.hide() : this.show(_relatedTarget)
 
  }
 

	
 
  Modal.prototype.show = function (_relatedTarget) {
 
    var that = this
 
    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
    this.$element.trigger(e)
 

	
 
    if (this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = true
 

	
 
    this.checkScrollbar()
 
    this.setScrollbar()
 
    this.$body.addClass('modal-open')
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
 

	
 
    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
 
      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
 
        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
 
      })
 
    })
 

	
 
    this.backdrop(function () {
 
      var transition = $.support.transition && that.$element.hasClass('fade')
 

	
 
      if (!that.$element.parent().length) {
 
        that.$element.appendTo(that.$body) // don't move modals dom position
 
      }
 

	
 
      that.$element
 
        .show()
 
        .scrollTop(0)
 

	
 
      that.adjustDialog()
 

	
 
      if (transition) {
 
        that.$element[0].offsetWidth // force reflow
 
      }
 

	
 
      that.$element.addClass('in')
 

	
 
      that.enforceFocus()
 

	
 
      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
      transition ?
 
        that.$dialog // wait for modal to slide in
 
          .one('bsTransitionEnd', function () {
 
            that.$element.trigger('focus').trigger(e)
 
          })
 
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
        that.$element.trigger('focus').trigger(e)
 
    })
 
  }
 

	
 
  Modal.prototype.hide = function (e) {
 
    if (e) e.preventDefault()
 

	
 
    e = $.Event('hide.bs.modal')
 

	
 
    this.$element.trigger(e)
 

	
 
    if (!this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = false
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    $(document).off('focusin.bs.modal')
 

	
 
    this.$element
 
      .removeClass('in')
 
      .off('click.dismiss.bs.modal')
 
      .off('mouseup.dismiss.bs.modal')
 

	
 
    this.$dialog.off('mousedown.dismiss.bs.modal')
 

	
 
    $.support.transition && this.$element.hasClass('fade') ?
 
      this.$element
 
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
 
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
      this.hideModal()
 
  }
 

	
 
  Modal.prototype.enforceFocus = function () {
 
    $(document)
 
      .off('focusin.bs.modal') // guard against infinite focus loop
 
      .on('focusin.bs.modal', $.proxy(function (e) {
 
        if (document !== e.target &&
 
            this.$element[0] !== e.target &&
 
            !this.$element.has(e.target).length) {
 
          this.$element.trigger('focus')
 
        }
 
      }, this))
 
  }
 

	
 
  Modal.prototype.escape = function () {
 
    if (this.isShown && this.options.keyboard) {
 
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
 
        e.which == 27 && this.hide()
 
      }, this))
 
    } else if (!this.isShown) {
 
      this.$element.off('keydown.dismiss.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.resize = function () {
 
    if (this.isShown) {
 
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
 
    } else {
 
      $(window).off('resize.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.hideModal = function () {
 
    var that = this
 
    this.$element.hide()
 
    this.backdrop(function () {
 
      that.$body.removeClass('modal-open')
 
      that.resetAdjustments()
 
      that.resetScrollbar()
 
      that.$element.trigger('hidden.bs.modal')
 
    })
 
  }
 

	
 
  Modal.prototype.removeBackdrop = function () {
 
    this.$backdrop && this.$backdrop.remove()
 
    this.$backdrop = null
 
  }
 

	
 
  Modal.prototype.backdrop = function (callback) {
 
    var that = this
 
    var animate = this.$element.hasClass('fade') ? 'fade' : ''
 

	
 
    if (this.isShown && this.options.backdrop) {
 
      var doAnimate = $.support.transition && animate
 

	
 
      this.$backdrop = $(document.createElement('div'))
 
        .addClass('modal-backdrop ' + animate)
 
        .appendTo(this.$body)
 

	
 
      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
 
        if (this.ignoreBackdropClick) {
 
          this.ignoreBackdropClick = false
 
          return
 
        }
 
        if (e.target !== e.currentTarget) return
 
        this.options.backdrop == 'static'
 
          ? this.$element[0].focus()
 
          : this.hide()
 
      }, this))
 

	
 
      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 

	
 
      this.$backdrop.addClass('in')
 

	
 
      if (!callback) return
 

	
 
      doAnimate ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callback)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callback()
 

	
 
    } else if (!this.isShown && this.$backdrop) {
 
      this.$backdrop.removeClass('in')
 

	
 
      var callbackRemove = function () {
 
        that.removeBackdrop()
 
        callback && callback()
 
      }
 
      $.support.transition && this.$element.hasClass('fade') ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callbackRemove)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callbackRemove()
 

	
 
    } else if (callback) {
 
      callback()
 
    }
 
  }
 

	
 
  // these following methods are used to handle overflowing modals
 

	
 
  Modal.prototype.handleUpdate = function () {
 
    this.adjustDialog()
 
  }
 

	
 
  Modal.prototype.adjustDialog = function () {
 
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
 

	
 
    this.$element.css({
 
      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
 
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
 
    })
 
  }
 

	
 
  Modal.prototype.resetAdjustments = function () {
 
    this.$element.css({
 
      paddingLeft: '',
 
      paddingRight: ''
 
    })
 
  }
 

	
 
  Modal.prototype.checkScrollbar = function () {
 
    var fullWindowWidth = window.innerWidth
 
    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
 
      var documentElementRect = document.documentElement.getBoundingClientRect()
 
      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
 
    }
 
    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
 
    this.scrollbarWidth = this.measureScrollbar()
 
  }
 

	
 
  Modal.prototype.setScrollbar = function () {
 
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
 
    this.originalBodyPad = document.body.style.paddingRight || ''
 
    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
 
  }
 

	
 
  Modal.prototype.resetScrollbar = function () {
 
    this.$body.css('padding-right', this.originalBodyPad)
 
  }
 

	
 
  Modal.prototype.measureScrollbar = function () { // thx walsh
 
    var scrollDiv = document.createElement('div')
 
    scrollDiv.className = 'modal-scrollbar-measure'
 
    this.$body.append(scrollDiv)
 
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
 
    this.$body[0].removeChild(scrollDiv)
 
    return scrollbarWidth
 
  }
 

	
 

	
 
  // MODAL PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option, _relatedTarget) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.modal')
 
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
 
      if (typeof option == 'string') data[option](_relatedTarget)
 
      else if (options.show) data.show(_relatedTarget)
 
    })
 
  }
 

	
 
  var old = $.fn.modal
 

	
 
  $.fn.modal             = Plugin
 
  $.fn.modal.Constructor = Modal
 

	
 

	
 
  // MODAL NO CONFLICT
 
  // =================
 

	
 
  $.fn.modal.noConflict = function () {
 
    $.fn.modal = old
 
    return this
 
  }
 

	
 

	
 
  // MODAL DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
 
    var $this   = $(this)
 
    var href    = $this.attr('href')
 
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
 
    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
 

	
 
    if ($this.is('a')) e.preventDefault()
 

	
 
    $target.one('show.bs.modal', function (showEvent) {
 
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
 
      $target.one('hidden.bs.modal', function () {
 
        $this.is(':visible') && $this.trigger('focus')
 
      })
 
    })
 
    Plugin.call($target, option, this)
 
  })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/popover.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: popover.js v3.3.7
 
 * http://getbootstrap.com/javascript/#popovers
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // POPOVER PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Popover = function (element, options) {
 
    this.init('popover', element, options)
 
  }
 

	
 
  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
 

	
 
  Popover.VERSION  = '3.3.7'
 

	
 
  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
 
    placement: 'right',
 
    trigger: 'click',
 
    content: '',
 
    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
 
  })
 

	
 

	
 
  // NOTE: POPOVER EXTENDS tooltip.js
 
  // ================================
 

	
 
  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
 

	
 
  Popover.prototype.constructor = Popover
 

	
 
  Popover.prototype.getDefaults = function () {
 
    return Popover.DEFAULTS
 
  }
 

	
 
  Popover.prototype.setContent = function () {
 
    var $tip    = this.tip()
 
    var title   = this.getTitle()
 
    var content = this.getContent()
 

	
 
    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
 
    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
 
      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
 
    ](content)
 

	
 
    $tip.removeClass('fade top bottom left right in')
 

	
 
    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
 
    // this manually by checking the contents.
 
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
 
  }
 

	
 
  Popover.prototype.hasContent = function () {
 
    return this.getTitle() || this.getContent()
 
  }
 

	
 
  Popover.prototype.getContent = function () {
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    return $e.attr('data-content')
 
      || (typeof o.content == 'function' ?
 
            o.content.call($e[0]) :
 
            o.content)
 
  }
 

	
 
  Popover.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
 
  }
 

	
 

	
 
  // POPOVER PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.popover')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.popover
 

	
 
  $.fn.popover             = Plugin
 
  $.fn.popover.Constructor = Popover
 

	
 

	
 
  // POPOVER NO CONFLICT
 
  // ===================
 

	
 
  $.fn.popover.noConflict = function () {
 
    $.fn.popover = old
 
    return this
 
  }
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/scrollspy.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: scrollspy.js v3.3.7
 
 * http://getbootstrap.com/javascript/#scrollspy
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // SCROLLSPY CLASS DEFINITION
 
  // ==========================
 

	
 
  function ScrollSpy(element, options) {
 
    this.$body          = $(document.body)
 
    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
 
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
 
    this.selector       = (this.options.target || '') + ' .nav li > a'
 
    this.offsets        = []
 
    this.targets        = []
 
    this.activeTarget   = null
 
    this.scrollHeight   = 0
 

	
 
    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
 
    this.refresh()
 
    this.process()
 
  }
 

	
 
  ScrollSpy.VERSION  = '3.3.7'
 

	
 
  ScrollSpy.DEFAULTS = {
 
    offset: 10
 
  }
 

	
 
  ScrollSpy.prototype.getScrollHeight = function () {
 
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
 
  }
 

	
 
  ScrollSpy.prototype.refresh = function () {
 
    var that          = this
 
    var offsetMethod  = 'offset'
 
    var offsetBase    = 0
 

	
 
    this.offsets      = []
 
    this.targets      = []
 
    this.scrollHeight = this.getScrollHeight()
 

	
 
    if (!$.isWindow(this.$scrollElement[0])) {
 
      offsetMethod = 'position'
 
      offsetBase   = this.$scrollElement.scrollTop()
 
    }
 

	
 
    this.$body
 
      .find(this.selector)
 
      .map(function () {
 
        var $el   = $(this)
 
        var href  = $el.data('target') || $el.attr('href')
 
        var $href = /^#./.test(href) && $(href)
 

	
 
        return ($href
 
          && $href.length
 
          && $href.is(':visible')
 
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
 
      })
 
      .sort(function (a, b) { return a[0] - b[0] })
 
      .each(function () {
 
        that.offsets.push(this[0])
 
        that.targets.push(this[1])
 
      })
 
  }
 

	
 
  ScrollSpy.prototype.process = function () {
 
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
 
    var scrollHeight = this.getScrollHeight()
 
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
 
    var offsets      = this.offsets
 
    var targets      = this.targets
 
    var activeTarget = this.activeTarget
 
    var i
 

	
 
    if (this.scrollHeight != scrollHeight) {
 
      this.refresh()
 
    }
 

	
 
    if (scrollTop >= maxScroll) {
 
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
 
    }
 

	
 
    if (activeTarget && scrollTop < offsets[0]) {
 
      this.activeTarget = null
 
      return this.clear()
 
    }
 

	
 
    for (i = offsets.length; i--;) {
 
      activeTarget != targets[i]
 
        && scrollTop >= offsets[i]
 
        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
 
        && this.activate(targets[i])
 
    }
 
  }
 

	
 
  ScrollSpy.prototype.activate = function (target) {
 
    this.activeTarget = target
 

	
 
    this.clear()
 

	
 
    var selector = this.selector +
 
      '[data-target="' + target + '"],' +
 
      this.selector + '[href="' + target + '"]'
 

	
 
    var active = $(selector)
 
      .parents('li')
 
      .addClass('active')
 

	
 
    if (active.parent('.dropdown-menu').length) {
 
      active = active
 
        .closest('li.dropdown')
 
        .addClass('active')
 
    }
 

	
 
    active.trigger('activate.bs.scrollspy')
 
  }
 

	
 
  ScrollSpy.prototype.clear = function () {
 
    $(this.selector)
 
      .parentsUntil(this.options.target, '.active')
 
      .removeClass('active')
 
  }
 

	
 

	
 
  // SCROLLSPY PLUGIN DEFINITION
 
  // ===========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.scrollspy')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.scrollspy
 

	
 
  $.fn.scrollspy             = Plugin
 
  $.fn.scrollspy.Constructor = ScrollSpy
 

	
 

	
 
  // SCROLLSPY NO CONFLICT
 
  // =====================
 

	
 
  $.fn.scrollspy.noConflict = function () {
 
    $.fn.scrollspy = old
 
    return this
 
  }
 

	
 

	
 
  // SCROLLSPY DATA-API
 
  // ==================
 

	
 
  $(window).on('load.bs.scrollspy.data-api', function () {
 
    $('[data-spy="scroll"]').each(function () {
 
      var $spy = $(this)
 
      Plugin.call($spy, $spy.data())
 
    })
 
  })
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/tab.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: tab.js v3.3.7
 
 * http://getbootstrap.com/javascript/#tabs
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TAB CLASS DEFINITION
 
  // ====================
 

	
 
  var Tab = function (element) {
 
    // jscs:disable requireDollarBeforejQueryAssignment
 
    this.element = $(element)
 
    // jscs:enable requireDollarBeforejQueryAssignment
 
  }
 

	
 
  Tab.VERSION = '3.3.7'
 

	
 
  Tab.TRANSITION_DURATION = 150
 

	
 
  Tab.prototype.show = function () {
 
    var $this    = this.element
 
    var $ul      = $this.closest('ul:not(.dropdown-menu)')
 
    var selector = $this.data('target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    if ($this.parent('li').hasClass('active')) return
 

	
 
    var $previous = $ul.find('.active:last a')
 
    var hideEvent = $.Event('hide.bs.tab', {
 
      relatedTarget: $this[0]
 
    })
 
    var showEvent = $.Event('show.bs.tab', {
 
      relatedTarget: $previous[0]
 
    })
 

	
 
    $previous.trigger(hideEvent)
 
    $this.trigger(showEvent)
 

	
 
    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
 

	
 
    var $target = $(selector)
 

	
 
    this.activate($this.closest('li'), $ul)
 
    this.activate($target, $target.parent(), function () {
 
      $previous.trigger({
 
        type: 'hidden.bs.tab',
 
        relatedTarget: $this[0]
 
      })
 
      $this.trigger({
 
        type: 'shown.bs.tab',
 
        relatedTarget: $previous[0]
 
      })
 
    })
 
  }
 

	
 
  Tab.prototype.activate = function (element, container, callback) {
 
    var $active    = container.find('> .active')
 
    var transition = callback
 
      && $.support.transition
 
      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
 

	
 
    function next() {
 
      $active
 
        .removeClass('active')
 
        .find('> .dropdown-menu > .active')
 
          .removeClass('active')
 
        .end()
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', false)
 

	
 
      element
 
        .addClass('active')
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', true)
 

	
 
      if (transition) {
 
        element[0].offsetWidth // reflow for transition
 
        element.addClass('in')
 
      } else {
 
        element.removeClass('fade')
 
      }
 

	
 
      if (element.parent('.dropdown-menu').length) {
 
        element
 
          .closest('li.dropdown')
 
            .addClass('active')
 
          .end()
 
          .find('[data-toggle="tab"]')
 
            .attr('aria-expanded', true)
 
      }
 

	
 
      callback && callback()
 
    }
 

	
 
    $active.length && transition ?
 
      $active
 
        .one('bsTransitionEnd', next)
 
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
 
      next()
 

	
 
    $active.removeClass('in')
 
  }
 

	
 

	
 
  // TAB PLUGIN DEFINITION
 
  // =====================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.tab')
 

	
 
      if (!data) $this.data('bs.tab', (data = new Tab(this)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tab
 

	
 
  $.fn.tab             = Plugin
 
  $.fn.tab.Constructor = Tab
 

	
 

	
 
  // TAB NO CONFLICT
 
  // ===============
 

	
 
  $.fn.tab.noConflict = function () {
 
    $.fn.tab = old
 
    return this
 
  }
 

	
 

	
 
  // TAB DATA-API
 
  // ============
 

	
 
  var clickHandler = function (e) {
 
    e.preventDefault()
 
    Plugin.call($(this), 'show')
 
  }
 

	
 
  $(document)
 
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
 
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/tooltip.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: tooltip.js v3.3.7
 
 * http://getbootstrap.com/javascript/#tooltip
 
 * Inspired by the original jQuery.tipsy by Jason Frame
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TOOLTIP PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Tooltip = function (element, options) {
 
    this.type       = null
 
    this.options    = null
 
    this.enabled    = null
 
    this.timeout    = null
 
    this.hoverState = null
 
    this.$element   = null
 
    this.inState    = null
 

	
 
    this.init('tooltip', element, options)
 
  }
 

	
 
  Tooltip.VERSION  = '3.3.7'
 

	
 
  Tooltip.TRANSITION_DURATION = 150
 

	
 
  Tooltip.DEFAULTS = {
 
    animation: true,
 
    placement: 'top',
 
    selector: false,
 
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
 
    trigger: 'hover focus',
 
    title: '',
 
    delay: 0,
 
    html: false,
 
    container: false,
 
    viewport: {
 
      selector: 'body',
 
      padding: 0
 
    }
 
  }
 

	
 
  Tooltip.prototype.init = function (type, element, options) {
 
    this.enabled   = true
 
    this.type      = type
 
    this.$element  = $(element)
 
    this.options   = this.getOptions(options)
 
    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
 
    this.inState   = { click: false, hover: false, focus: false }
 

	
 
    if (this.$element[0] instanceof document.constructor && !this.options.selector) {
 
      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
 
    }
 

	
 
    var triggers = this.options.trigger.split(' ')
 

	
 
    for (var i = triggers.length; i--;) {
 
      var trigger = triggers[i]
 

	
 
      if (trigger == 'click') {
 
        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
 
      } else if (trigger != 'manual') {
 
        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
 
        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
 

	
 
        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
 
        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
 
      }
 
    }
 

	
 
    this.options.selector ?
 
      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
 
      this.fixTitle()
 
  }
 

	
 
  Tooltip.prototype.getDefaults = function () {
 
    return Tooltip.DEFAULTS
 
  }
 

	
 
  Tooltip.prototype.getOptions = function (options) {
 
    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
 

	
 
    if (options.delay && typeof options.delay == 'number') {
 
      options.delay = {
 
        show: options.delay,
 
        hide: options.delay
 
      }
 
    }
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.getDelegateOptions = function () {
 
    var options  = {}
 
    var defaults = this.getDefaults()
 

	
 
    this._options && $.each(this._options, function (key, value) {
 
      if (defaults[key] != value) options[key] = value
 
    })
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.enter = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
 
    }
 

	
 
    if (self.tip().hasClass('in') || self.hoverState == 'in') {
 
      self.hoverState = 'in'
 
      return
 
    }
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'in'
 

	
 
    if (!self.options.delay || !self.options.delay.show) return self.show()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'in') self.show()
 
    }, self.options.delay.show)
 
  }
 

	
 
  Tooltip.prototype.isInStateTrue = function () {
 
    for (var key in this.inState) {
 
      if (this.inState[key]) return true
 
    }
 

	
 
    return false
 
  }
 

	
 
  Tooltip.prototype.leave = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
 
    }
 

	
 
    if (self.isInStateTrue()) return
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'out'
 

	
 
    if (!self.options.delay || !self.options.delay.hide) return self.hide()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'out') self.hide()
 
    }, self.options.delay.hide)
 
  }
 

	
 
  Tooltip.prototype.show = function () {
 
    var e = $.Event('show.bs.' + this.type)
 

	
 
    if (this.hasContent() && this.enabled) {
 
      this.$element.trigger(e)
 

	
 
      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
 
      if (e.isDefaultPrevented() || !inDom) return
 
      var that = this
 

	
 
      var $tip = this.tip()
 

	
 
      var tipId = this.getUID(this.type)
 

	
 
      this.setContent()
 
      $tip.attr('id', tipId)
 
      this.$element.attr('aria-describedby', tipId)
 

	
 
      if (this.options.animation) $tip.addClass('fade')
 

	
 
      var placement = typeof this.options.placement == 'function' ?
 
        this.options.placement.call(this, $tip[0], this.$element[0]) :
 
        this.options.placement
 

	
 
      var autoToken = /\s?auto?\s?/i
 
      var autoPlace = autoToken.test(placement)
 
      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
 

	
 
      $tip
 
        .detach()
 
        .css({ top: 0, left: 0, display: 'block' })
 
        .addClass(placement)
 
        .data('bs.' + this.type, this)
 

	
 
      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
 
      this.$element.trigger('inserted.bs.' + this.type)
 

	
 
      var pos          = this.getPosition()
 
      var actualWidth  = $tip[0].offsetWidth
 
      var actualHeight = $tip[0].offsetHeight
 

	
 
      if (autoPlace) {
 
        var orgPlacement = placement
 
        var viewportDim = this.getPosition(this.$viewport)
 

	
 
        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
 
                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
 
                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
 
                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
 
                    placement
 

	
 
        $tip
 
          .removeClass(orgPlacement)
 
          .addClass(placement)
 
      }
 

	
 
      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
 

	
 
      this.applyPlacement(calculatedOffset, placement)
 

	
 
      var complete = function () {
 
        var prevHoverState = that.hoverState
 
        that.$element.trigger('shown.bs.' + that.type)
 
        that.hoverState = null
 

	
 
        if (prevHoverState == 'out') that.leave(that)
 
      }
 

	
 
      $.support.transition && this.$tip.hasClass('fade') ?
 
        $tip
 
          .one('bsTransitionEnd', complete)
 
          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
        complete()
 
    }
 
  }
 

	
 
  Tooltip.prototype.applyPlacement = function (offset, placement) {
 
    var $tip   = this.tip()
 
    var width  = $tip[0].offsetWidth
 
    var height = $tip[0].offsetHeight
 

	
 
    // manually read margins because getBoundingClientRect includes difference
 
    var marginTop = parseInt($tip.css('margin-top'), 10)
 
    var marginLeft = parseInt($tip.css('margin-left'), 10)
 

	
 
    // we must check for NaN for ie 8/9
 
    if (isNaN(marginTop))  marginTop  = 0
 
    if (isNaN(marginLeft)) marginLeft = 0
 

	
 
    offset.top  += marginTop
 
    offset.left += marginLeft
 

	
 
    // $.fn.offset doesn't round pixel values
 
    // so we use setOffset directly with our own function B-0
 
    $.offset.setOffset($tip[0], $.extend({
 
      using: function (props) {
 
        $tip.css({
 
          top: Math.round(props.top),
 
          left: Math.round(props.left)
 
        })
 
      }
 
    }, offset), 0)
 

	
 
    $tip.addClass('in')
 

	
 
    // check to see if placing tip in new offset caused the tip to resize itself
 
    var actualWidth  = $tip[0].offsetWidth
 
    var actualHeight = $tip[0].offsetHeight
 

	
 
    if (placement == 'top' && actualHeight != height) {
 
      offset.top = offset.top + height - actualHeight
 
    }
 

	
 
    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
 

	
 
    if (delta.left) offset.left += delta.left
 
    else offset.top += delta.top
 

	
 
    var isVertical          = /top|bottom/.test(placement)
 
    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
 
    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
 

	
 
    $tip.offset(offset)
 
    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
 
  }
 

	
 
  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
 
    this.arrow()
 
      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
 
      .css(isVertical ? 'top' : 'left', '')
 
  }
 

	
 
  Tooltip.prototype.setContent = function () {
 
    var $tip  = this.tip()
 
    var title = this.getTitle()
 

	
 
    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
 
    $tip.removeClass('fade in top bottom left right')
 
  }
 

	
 
  Tooltip.prototype.hide = function (callback) {
 
    var that = this
 
    var $tip = $(this.$tip)
 
    var e    = $.Event('hide.bs.' + this.type)
 

	
 
    function complete() {
 
      if (that.hoverState != 'in') $tip.detach()
 
      if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
 
        that.$element
 
          .removeAttr('aria-describedby')
 
          .trigger('hidden.bs.' + that.type)
 
      }
 
      callback && callback()
 
    }
 

	
 
    this.$element.trigger(e)
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $tip.removeClass('in')
 

	
 
    $.support.transition && $tip.hasClass('fade') ?
 
      $tip
 
        .one('bsTransitionEnd', complete)
 
        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
      complete()
 

	
 
    this.hoverState = null
 

	
 
    return this
 
  }
 

	
 
  Tooltip.prototype.fixTitle = function () {
 
    var $e = this.$element
 
    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
 
      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
 
    }
 
  }
 

	
 
  Tooltip.prototype.hasContent = function () {
 
    return this.getTitle()
 
  }
 

	
 
  Tooltip.prototype.getPosition = function ($element) {
 
    $element   = $element || this.$element
 

	
 
    var el     = $element[0]
 
    var isBody = el.tagName == 'BODY'
 

	
 
    var elRect    = el.getBoundingClientRect()
 
    if (elRect.width == null) {
 
      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
 
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
 
    }
 
    var isSvg = window.SVGElement && el instanceof window.SVGElement
 
    // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
 
    // See https://github.com/twbs/bootstrap/issues/20280
 
    var elOffset  = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
 
    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
 
    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
 

	
 
    return $.extend({}, elRect, scroll, outerDims, elOffset)
 
  }
 

	
 
  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
 
    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
 
        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
 

	
 
  }
 

	
 
  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
 
    var delta = { top: 0, left: 0 }
 
    if (!this.$viewport) return delta
 

	
 
    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
 
    var viewportDimensions = this.getPosition(this.$viewport)
 

	
 
    if (/right|left/.test(placement)) {
 
      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
 
      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
 
      if (topEdgeOffset < viewportDimensions.top) { // top overflow
 
        delta.top = viewportDimensions.top - topEdgeOffset
 
      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
 
        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
 
      }
 
    } else {
 
      var leftEdgeOffset  = pos.left - viewportPadding
 
      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
 
      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
 
        delta.left = viewportDimensions.left - leftEdgeOffset
 
      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
 
        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
 
      }
 
    }
 

	
 
    return delta
 
  }
 

	
 
  Tooltip.prototype.getTitle = function () {
 
    var title
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    title = $e.attr('data-original-title')
 
      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
 

	
 
    return title
 
  }
 

	
 
  Tooltip.prototype.getUID = function (prefix) {
 
    do prefix += ~~(Math.random() * 1000000)
 
    while (document.getElementById(prefix))
 
    return prefix
 
  }
 

	
 
  Tooltip.prototype.tip = function () {
 
    if (!this.$tip) {
 
      this.$tip = $(this.options.template)
 
      if (this.$tip.length != 1) {
 
        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
 
      }
 
    }
 
    return this.$tip
 
  }
 

	
 
  Tooltip.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
 
  }
 

	
 
  Tooltip.prototype.enable = function () {
 
    this.enabled = true
 
  }
 

	
 
  Tooltip.prototype.disable = function () {
 
    this.enabled = false
 
  }
 

	
 
  Tooltip.prototype.toggleEnabled = function () {
 
    this.enabled = !this.enabled
 
  }
 

	
 
  Tooltip.prototype.toggle = function (e) {
 
    var self = this
 
    if (e) {
 
      self = $(e.currentTarget).data('bs.' + this.type)
 
      if (!self) {
 
        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
 
        $(e.currentTarget).data('bs.' + this.type, self)
 
      }
 
    }
 

	
 
    if (e) {
 
      self.inState.click = !self.inState.click
 
      if (self.isInStateTrue()) self.enter(self)
 
      else self.leave(self)
 
    } else {
 
      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
 
    }
 
  }
 

	
 
  Tooltip.prototype.destroy = function () {
 
    var that = this
 
    clearTimeout(this.timeout)
 
    this.hide(function () {
 
      that.$element.off('.' + that.type).removeData('bs.' + that.type)
 
      if (that.$tip) {
 
        that.$tip.detach()
 
      }
 
      that.$tip = null
 
      that.$arrow = null
 
      that.$viewport = null
 
      that.$element = null
 
    })
 
  }
 

	
 

	
 
  // TOOLTIP PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.tooltip')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tooltip
 

	
 
  $.fn.tooltip             = Plugin
 
  $.fn.tooltip.Constructor = Tooltip
 

	
 

	
 
  // TOOLTIP NO CONFLICT
 
  // ===================
 

	
 
  $.fn.tooltip.noConflict = function () {
 
    $.fn.tooltip = old
 
    return this
 
  }
 

	
 
}(jQuery);
static/bootstrap/javascripts/bootstrap/transition.js
Show inline comments
 
new file 100644
 
/* ========================================================================
 
 * Bootstrap: transition.js v3.3.7
 
 * http://getbootstrap.com/javascript/#transitions
 
 * ========================================================================
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
 
  // ============================================================
 

	
 
  function transitionEnd() {
 
    var el = document.createElement('bootstrap')
 

	
 
    var transEndEventNames = {
 
      WebkitTransition : 'webkitTransitionEnd',
 
      MozTransition    : 'transitionend',
 
      OTransition      : 'oTransitionEnd otransitionend',
 
      transition       : 'transitionend'
 
    }
 

	
 
    for (var name in transEndEventNames) {
 
      if (el.style[name] !== undefined) {
 
        return { end: transEndEventNames[name] }
 
      }
 
    }
 

	
 
    return false // explicit for ie8 (  ._.)
 
  }
 

	
 
  // http://blog.alexmaccaw.com/css-transitions
 
  $.fn.emulateTransitionEnd = function (duration) {
 
    var called = false
 
    var $el = this
 
    $(this).one('bsTransitionEnd', function () { called = true })
 
    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
 
    setTimeout(callback, duration)
 
    return this
 
  }
 

	
 
  $(function () {
 
    $.support.transition = transitionEnd()
 

	
 
    if (!$.support.transition) return
 

	
 
    $.event.special.bsTransitionEnd = {
 
      bindType: $.support.transition.end,
 
      delegateType: $.support.transition.end,
 
      handle: function (e) {
 
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
 
      }
 
    }
 
  })
 

	
 
}(jQuery);
static/bootstrap/stylesheets/_bootstrap-compass.scss
Show inline comments
 
new file 100644
 
@function twbs-font-path($path) {
 
  @return font-url($path, true);
 
}
 

	
 
@function twbs-image-path($path) {
 
  @return image-url($path, true);
 
}
 

	
 
$bootstrap-sass-asset-helper: true;
static/bootstrap/stylesheets/_bootstrap-mincer.scss
Show inline comments
 
new file 100644
 
// Mincer asset helper functions
 
//
 
// This must be imported into a .css.ejs.scss file.
 
// Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation.
 

	
 

	
 
@function twbs-font-path($path) {
 
  // do something like following
 
  // from "path/to/font.ext#suffix" to "<%- asset_path(path/to/font.ext)) + #suffix %>"
 
  // from "path/to/font.ext?#suffix" to "<%- asset_path(path/to/font.ext)) + ?#suffix %>"
 
  // or from "path/to/font.ext" just "<%- asset_path(path/to/font.ext)) %>"
 
  @return "<%- asset_path("#{$path}".replace(/[#?].*$/, '')) + "#{$path}".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>";
 
}
 

	
 
@function twbs-image-path($file) {
 
  @return "<%- asset_path("#{$file}") %>";
 
}
 

	
 
$bootstrap-sass-asset-helper: true;
static/bootstrap/stylesheets/_bootstrap-sprockets.scss
Show inline comments
 
new file 100644
 
@function twbs-font-path($path) {
 
  @return font-path($path);
 
}
 

	
 
@function twbs-image-path($path) {
 
  @return image-path($path);
 
}
 

	
 
$bootstrap-sass-asset-helper: true;
static/bootstrap/stylesheets/_bootstrap.scss
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 */
 

	
 
// Core variables and mixins
 
@import "bootstrap/variables";
 
@import "bootstrap/mixins";
 

	
 
// Reset and dependencies
 
@import "bootstrap/normalize";
 
@import "bootstrap/print";
 
@import "bootstrap/glyphicons";
 

	
 
// Core CSS
 
@import "bootstrap/scaffolding";
 
@import "bootstrap/type";
 
@import "bootstrap/code";
 
@import "bootstrap/grid";
 
@import "bootstrap/tables";
 
@import "bootstrap/forms";
 
@import "bootstrap/buttons";
 

	
 
// Components
 
@import "bootstrap/component-animations";
 
@import "bootstrap/dropdowns";
 
@import "bootstrap/button-groups";
 
@import "bootstrap/input-groups";
 
@import "bootstrap/navs";
 
@import "bootstrap/navbar";
 
@import "bootstrap/breadcrumbs";
 
@import "bootstrap/pagination";
 
@import "bootstrap/pager";
 
@import "bootstrap/labels";
 
@import "bootstrap/badges";
 
@import "bootstrap/jumbotron";
 
@import "bootstrap/thumbnails";
 
@import "bootstrap/alerts";
 
@import "bootstrap/progress-bars";
 
@import "bootstrap/media";
 
@import "bootstrap/list-group";
 
@import "bootstrap/panels";
 
@import "bootstrap/responsive-embed";
 
@import "bootstrap/wells";
 
@import "bootstrap/close";
 

	
 
// Components w/ JavaScript
 
@import "bootstrap/modals";
 
@import "bootstrap/tooltip";
 
@import "bootstrap/popovers";
 
@import "bootstrap/carousel";
 

	
 
// Utility classes
 
@import "bootstrap/utilities";
 
@import "bootstrap/responsive-utilities";
static/bootstrap/stylesheets/bootstrap/_alerts.scss
Show inline comments
 
new file 100644
 
//
 
// Alerts
 
// --------------------------------------------------
 

	
 

	
 
// Base styles
 
// -------------------------
 

	
 
.alert {
 
  padding: $alert-padding;
 
  margin-bottom: $line-height-computed;
 
  border: 1px solid transparent;
 
  border-radius: $alert-border-radius;
 

	
 
  // Headings for larger alerts
 
  h4 {
 
    margin-top: 0;
 
    // Specified for the h4 to prevent conflicts of changing $headings-color
 
    color: inherit;
 
  }
 

	
 
  // Provide class for links that match alerts
 
  .alert-link {
 
    font-weight: $alert-link-font-weight;
 
  }
 

	
 
  // Improve alignment and spacing of inner content
 
  > p,
 
  > ul {
 
    margin-bottom: 0;
 
  }
 

	
 
  > p + p {
 
    margin-top: 5px;
 
  }
 
}
 

	
 
// Dismissible alerts
 
//
 
// Expand the right padding and account for the close button's positioning.
 

	
 
.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
 
.alert-dismissible {
 
  padding-right: ($alert-padding + 20);
 

	
 
  // Adjust close link position
 
  .close {
 
    position: relative;
 
    top: -2px;
 
    right: -21px;
 
    color: inherit;
 
  }
 
}
 

	
 
// Alternate styles
 
//
 
// Generate contextual modifier classes for colorizing the alert.
 

	
 
.alert-success {
 
  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
 
}
 

	
 
.alert-info {
 
  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
 
}
 

	
 
.alert-warning {
 
  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
 
}
 

	
 
.alert-danger {
 
  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
 
}
static/bootstrap/stylesheets/bootstrap/_badges.scss
Show inline comments
 
new file 100644
 
//
 
// Badges
 
// --------------------------------------------------
 

	
 

	
 
// Base class
 
.badge {
 
  display: inline-block;
 
  min-width: 10px;
 
  padding: 3px 7px;
 
  font-size: $font-size-small;
 
  font-weight: $badge-font-weight;
 
  color: $badge-color;
 
  line-height: $badge-line-height;
 
  vertical-align: middle;
 
  white-space: nowrap;
 
  text-align: center;
 
  background-color: $badge-bg;
 
  border-radius: $badge-border-radius;
 

	
 
  // Empty badges collapse automatically (not available in IE8)
 
  &:empty {
 
    display: none;
 
  }
 

	
 
  // Quick fix for badges in buttons
 
  .btn & {
 
    position: relative;
 
    top: -1px;
 
  }
 

	
 
  .btn-xs &,
 
  .btn-group-xs > .btn & {
 
    top: 0;
 
    padding: 1px 5px;
 
  }
 

	
 
  // [converter] extracted a& to a.badge
 

	
 
  // Account for badges in navs
 
  .list-group-item.active > &,
 
  .nav-pills > .active > a > & {
 
    color: $badge-active-color;
 
    background-color: $badge-active-bg;
 
  }
 

	
 
  .list-group-item > & {
 
    float: right;
 
  }
 

	
 
  .list-group-item > & + & {
 
    margin-right: 5px;
 
  }
 

	
 
  .nav-pills > li > a > & {
 
    margin-left: 3px;
 
  }
 
}
 

	
 
// Hover state, but only for links
 
a.badge {
 
  &:hover,
 
  &:focus {
 
    color: $badge-link-hover-color;
 
    text-decoration: none;
 
    cursor: pointer;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_breadcrumbs.scss
Show inline comments
 
new file 100644
 
//
 
// Breadcrumbs
 
// --------------------------------------------------
 

	
 

	
 
.breadcrumb {
 
  padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
 
  margin-bottom: $line-height-computed;
 
  list-style: none;
 
  background-color: $breadcrumb-bg;
 
  border-radius: $border-radius-base;
 

	
 
  > li {
 
    display: inline-block;
 

	
 
    + li:before {
 
      // [converter] Workaround for https://github.com/sass/libsass/issues/1115
 
      $nbsp: "\00a0";
 
      content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space
 
      padding: 0 5px;
 
      color: $breadcrumb-color;
 
    }
 
  }
 

	
 
  > .active {
 
    color: $breadcrumb-active-color;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_button-groups.scss
Show inline comments
 
new file 100644
 
//
 
// Button groups
 
// --------------------------------------------------
 

	
 
// Make the div behave like a button
 
.btn-group,
 
.btn-group-vertical {
 
  position: relative;
 
  display: inline-block;
 
  vertical-align: middle; // match .btn alignment given font-size hack above
 
  > .btn {
 
    position: relative;
 
    float: left;
 
    // Bring the "active" button to the front
 
    &:hover,
 
    &:focus,
 
    &:active,
 
    &.active {
 
      z-index: 2;
 
    }
 
  }
 
}
 

	
 
// Prevent double borders when buttons are next to each other
 
.btn-group {
 
  .btn + .btn,
 
  .btn + .btn-group,
 
  .btn-group + .btn,
 
  .btn-group + .btn-group {
 
    margin-left: -1px;
 
  }
 
}
 

	
 
// Optional: Group multiple button groups together for a toolbar
 
.btn-toolbar {
 
  margin-left: -5px; // Offset the first child's margin
 
  @include clearfix;
 

	
 
  .btn,
 
  .btn-group,
 
  .input-group {
 
    float: left;
 
  }
 
  > .btn,
 
  > .btn-group,
 
  > .input-group {
 
    margin-left: 5px;
 
  }
 
}
 

	
 
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 
  border-radius: 0;
 
}
 

	
 
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
 
.btn-group > .btn:first-child {
 
  margin-left: 0;
 
  &:not(:last-child):not(.dropdown-toggle) {
 
    @include border-right-radius(0);
 
  }
 
}
 
// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
 
.btn-group > .btn:last-child:not(:first-child),
 
.btn-group > .dropdown-toggle:not(:first-child) {
 
  @include border-left-radius(0);
 
}
 

	
 
// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
 
.btn-group > .btn-group {
 
  float: left;
 
}
 
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 
.btn-group > .btn-group:first-child:not(:last-child) {
 
  > .btn:last-child,
 
  > .dropdown-toggle {
 
    @include border-right-radius(0);
 
  }
 
}
 
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
 
  @include border-left-radius(0);
 
}
 

	
 
// On active and open, don't show outline
 
.btn-group .dropdown-toggle:active,
 
.btn-group.open .dropdown-toggle {
 
  outline: 0;
 
}
 

	
 

	
 
// Sizing
 
//
 
// Remix the default button sizing classes into new ones for easier manipulation.
 

	
 
.btn-group-xs > .btn { @extend .btn-xs; }
 
.btn-group-sm > .btn { @extend .btn-sm; }
 
.btn-group-lg > .btn { @extend .btn-lg; }
 

	
 

	
 
// Split button dropdowns
 
// ----------------------
 

	
 
// Give the line between buttons some depth
 
.btn-group > .btn + .dropdown-toggle {
 
  padding-left: 8px;
 
  padding-right: 8px;
 
}
 
.btn-group > .btn-lg + .dropdown-toggle {
 
  padding-left: 12px;
 
  padding-right: 12px;
 
}
 

	
 
// The clickable button for toggling the menu
 
// Remove the gradient and set the same inset shadow as the :active state
 
.btn-group.open .dropdown-toggle {
 
  @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
 

	
 
  // Show no shadow for `.btn-link` since it has no other button styles.
 
  &.btn-link {
 
    @include box-shadow(none);
 
  }
 
}
 

	
 

	
 
// Reposition the caret
 
.btn .caret {
 
  margin-left: 0;
 
}
 
// Carets in other button sizes
 
.btn-lg .caret {
 
  border-width: $caret-width-large $caret-width-large 0;
 
  border-bottom-width: 0;
 
}
 
// Upside down carets for .dropup
 
.dropup .btn-lg .caret {
 
  border-width: 0 $caret-width-large $caret-width-large;
 
}
 

	
 

	
 
// Vertical button groups
 
// ----------------------
 

	
 
.btn-group-vertical {
 
  > .btn,
 
  > .btn-group,
 
  > .btn-group > .btn {
 
    display: block;
 
    float: none;
 
    width: 100%;
 
    max-width: 100%;
 
  }
 

	
 
  // Clear floats so dropdown menus can be properly placed
 
  > .btn-group {
 
    @include clearfix;
 
    > .btn {
 
      float: none;
 
    }
 
  }
 

	
 
  > .btn + .btn,
 
  > .btn + .btn-group,
 
  > .btn-group + .btn,
 
  > .btn-group + .btn-group {
 
    margin-top: -1px;
 
    margin-left: 0;
 
  }
 
}
 

	
 
.btn-group-vertical > .btn {
 
  &:not(:first-child):not(:last-child) {
 
    border-radius: 0;
 
  }
 
  &:first-child:not(:last-child) {
 
    @include border-top-radius($btn-border-radius-base);
 
    @include border-bottom-radius(0);
 
  }
 
  &:last-child:not(:first-child) {
 
    @include border-top-radius(0);
 
    @include border-bottom-radius($btn-border-radius-base);
 
  }
 
}
 
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 
.btn-group-vertical > .btn-group:first-child:not(:last-child) {
 
  > .btn:last-child,
 
  > .dropdown-toggle {
 
    @include border-bottom-radius(0);
 
  }
 
}
 
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
 
  @include border-top-radius(0);
 
}
 

	
 

	
 
// Justified button groups
 
// ----------------------
 

	
 
.btn-group-justified {
 
  display: table;
 
  width: 100%;
 
  table-layout: fixed;
 
  border-collapse: separate;
 
  > .btn,
 
  > .btn-group {
 
    float: none;
 
    display: table-cell;
 
    width: 1%;
 
  }
 
  > .btn-group .btn {
 
    width: 100%;
 
  }
 

	
 
  > .btn-group .dropdown-menu {
 
    left: auto;
 
  }
 
}
 

	
 

	
 
// Checkbox and radio options
 
//
 
// In order to support the browser's form validation feedback, powered by the
 
// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
 
// `display: none;` or `visibility: hidden;` as that also hides the popover.
 
// Simply visually hiding the inputs via `opacity` would leave them clickable in
 
// certain cases which is prevented by using `clip` and `pointer-events`.
 
// This way, we ensure a DOM element is visible to position the popover from.
 
//
 
// See https://github.com/twbs/bootstrap/pull/12794 and
 
// https://github.com/twbs/bootstrap/pull/14559 for more information.
 

	
 
[data-toggle="buttons"] {
 
  > .btn,
 
  > .btn-group > .btn {
 
    input[type="radio"],
 
    input[type="checkbox"] {
 
      position: absolute;
 
      clip: rect(0,0,0,0);
 
      pointer-events: none;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_buttons.scss
Show inline comments
 
new file 100644
 
//
 
// Buttons
 
// --------------------------------------------------
 

	
 

	
 
// Base styles
 
// --------------------------------------------------
 

	
 
.btn {
 
  display: inline-block;
 
  margin-bottom: 0; // For input.btn
 
  font-weight: $btn-font-weight;
 
  text-align: center;
 
  vertical-align: middle;
 
  touch-action: manipulation;
 
  cursor: pointer;
 
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
 
  border: 1px solid transparent;
 
  white-space: nowrap;
 
  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);
 
  @include user-select(none);
 

	
 
  &,
 
  &:active,
 
  &.active {
 
    &:focus,
 
    &.focus {
 
      @include tab-focus;
 
    }
 
  }
 

	
 
  &:hover,
 
  &:focus,
 
  &.focus {
 
    color: $btn-default-color;
 
    text-decoration: none;
 
  }
 

	
 
  &:active,
 
  &.active {
 
    outline: 0;
 
    background-image: none;
 
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
 
  }
 

	
 
  &.disabled,
 
  &[disabled],
 
  fieldset[disabled] & {
 
    cursor: $cursor-disabled;
 
    @include opacity(.65);
 
    @include box-shadow(none);
 
  }
 

	
 
  // [converter] extracted a& to a.btn
 
}
 

	
 
a.btn {
 
  &.disabled,
 
  fieldset[disabled] & {
 
    pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
 
  }
 
}
 

	
 

	
 
// Alternate buttons
 
// --------------------------------------------------
 

	
 
.btn-default {
 
  @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
 
}
 
.btn-primary {
 
  @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
 
}
 
// Success appears as green
 
.btn-success {
 
  @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
 
}
 
// Info appears as blue-green
 
.btn-info {
 
  @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
 
}
 
// Warning appears as orange
 
.btn-warning {
 
  @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
 
}
 
// Danger and error appear as red
 
.btn-danger {
 
  @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
 
}
 

	
 

	
 
// Link buttons
 
// -------------------------
 

	
 
// Make a button look and behave like a link
 
.btn-link {
 
  color: $link-color;
 
  font-weight: normal;
 
  border-radius: 0;
 

	
 
  &,
 
  &:active,
 
  &.active,
 
  &[disabled],
 
  fieldset[disabled] & {
 
    background-color: transparent;
 
    @include box-shadow(none);
 
  }
 
  &,
 
  &:hover,
 
  &:focus,
 
  &:active {
 
    border-color: transparent;
 
  }
 
  &:hover,
 
  &:focus {
 
    color: $link-hover-color;
 
    text-decoration: $link-hover-decoration;
 
    background-color: transparent;
 
  }
 
  &[disabled],
 
  fieldset[disabled] & {
 
    &:hover,
 
    &:focus {
 
      color: $btn-link-disabled-color;
 
      text-decoration: none;
 
    }
 
  }
 
}
 

	
 

	
 
// Button Sizes
 
// --------------------------------------------------
 

	
 
.btn-lg {
 
  // line-height: ensure even-numbered height of button next to large input
 
  @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);
 
}
 
.btn-sm {
 
  // line-height: ensure proper height of button next to small input
 
  @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
 
}
 
.btn-xs {
 
  @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
 
}
 

	
 

	
 
// Block button
 
// --------------------------------------------------
 

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

	
 
// Vertically space out multiple block buttons
 
.btn-block + .btn-block {
 
  margin-top: 5px;
 
}
 

	
 
// Specificity overrides
 
input[type="submit"],
 
input[type="reset"],
 
input[type="button"] {
 
  &.btn-block {
 
    width: 100%;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_carousel.scss
Show inline comments
 
new file 100644
 
//
 
// Carousel
 
// --------------------------------------------------
 

	
 

	
 
// Wrapper for the slide container and indicators
 
.carousel {
 
  position: relative;
 
}
 

	
 
.carousel-inner {
 
  position: relative;
 
  overflow: hidden;
 
  width: 100%;
 

	
 
  > .item {
 
    display: none;
 
    position: relative;
 
    @include transition(.6s ease-in-out left);
 

	
 
    // Account for jankitude on images
 
    > img,
 
    > a > img {
 
      @include img-responsive;
 
      line-height: 1;
 
    }
 

	
 
    // WebKit CSS3 transforms for supported devices
 
    @media all and (transform-3d), (-webkit-transform-3d) {
 
      @include transition-transform(0.6s ease-in-out);
 
      @include backface-visibility(hidden);
 
      @include perspective(1000px);
 

	
 
      &.next,
 
      &.active.right {
 
        @include translate3d(100%, 0, 0);
 
        left: 0;
 
      }
 
      &.prev,
 
      &.active.left {
 
        @include translate3d(-100%, 0, 0);
 
        left: 0;
 
      }
 
      &.next.left,
 
      &.prev.right,
 
      &.active {
 
        @include translate3d(0, 0, 0);
 
        left: 0;
 
      }
 
    }
 
  }
 

	
 
  > .active,
 
  > .next,
 
  > .prev {
 
    display: block;
 
  }
 

	
 
  > .active {
 
    left: 0;
 
  }
 

	
 
  > .next,
 
  > .prev {
 
    position: absolute;
 
    top: 0;
 
    width: 100%;
 
  }
 

	
 
  > .next {
 
    left: 100%;
 
  }
 
  > .prev {
 
    left: -100%;
 
  }
 
  > .next.left,
 
  > .prev.right {
 
    left: 0;
 
  }
 

	
 
  > .active.left {
 
    left: -100%;
 
  }
 
  > .active.right {
 
    left: 100%;
 
  }
 

	
 
}
 

	
 
// Left/right controls for nav
 
// ---------------------------
 

	
 
.carousel-control {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  bottom: 0;
 
  width: $carousel-control-width;
 
  @include opacity($carousel-control-opacity);
 
  font-size: $carousel-control-font-size;
 
  color: $carousel-control-color;
 
  text-align: center;
 
  text-shadow: $carousel-text-shadow;
 
  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
 
  // We can't have this transition here because WebKit cancels the carousel
 
  // animation if you trip this while in the middle of another animation.
 

	
 
  // Set gradients for backgrounds
 
  &.left {
 
    @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
 
  }
 
  &.right {
 
    left: auto;
 
    right: 0;
 
    @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
 
  }
 

	
 
  // Hover/focus state
 
  &:hover,
 
  &:focus {
 
    outline: 0;
 
    color: $carousel-control-color;
 
    text-decoration: none;
 
    @include opacity(.9);
 
  }
 

	
 
  // Toggles
 
  .icon-prev,
 
  .icon-next,
 
  .glyphicon-chevron-left,
 
  .glyphicon-chevron-right {
 
    position: absolute;
 
    top: 50%;
 
    margin-top: -10px;
 
    z-index: 5;
 
    display: inline-block;
 
  }
 
  .icon-prev,
 
  .glyphicon-chevron-left {
 
    left: 50%;
 
    margin-left: -10px;
 
  }
 
  .icon-next,
 
  .glyphicon-chevron-right {
 
    right: 50%;
 
    margin-right: -10px;
 
  }
 
  .icon-prev,
 
  .icon-next {
 
    width:  20px;
 
    height: 20px;
 
    line-height: 1;
 
    font-family: serif;
 
  }
 

	
 

	
 
  .icon-prev {
 
    &:before {
 
      content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
 
    }
 
  }
 
  .icon-next {
 
    &:before {
 
      content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
 
    }
 
  }
 
}
 

	
 
// Optional indicator pips
 
//
 
// Add an unordered list with the following class and add a list item for each
 
// slide your carousel holds.
 

	
 
.carousel-indicators {
 
  position: absolute;
 
  bottom: 10px;
 
  left: 50%;
 
  z-index: 15;
 
  width: 60%;
 
  margin-left: -30%;
 
  padding-left: 0;
 
  list-style: none;
 
  text-align: center;
 

	
 
  li {
 
    display: inline-block;
 
    width:  10px;
 
    height: 10px;
 
    margin: 1px;
 
    text-indent: -999px;
 
    border: 1px solid $carousel-indicator-border-color;
 
    border-radius: 10px;
 
    cursor: pointer;
 

	
 
    // IE8-9 hack for event handling
 
    //
 
    // Internet Explorer 8-9 does not support clicks on elements without a set
 
    // `background-color`. We cannot use `filter` since that's not viewed as a
 
    // background color by the browser. Thus, a hack is needed.
 
    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
 
    //
 
    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
 
    // set alpha transparency for the best results possible.
 
    background-color: #000 \9; // IE8
 
    background-color: rgba(0,0,0,0); // IE9
 
  }
 
  .active {
 
    margin: 0;
 
    width:  12px;
 
    height: 12px;
 
    background-color: $carousel-indicator-active-bg;
 
  }
 
}
 

	
 
// Optional captions
 
// -----------------------------
 
// Hidden by default for smaller viewports
 
.carousel-caption {
 
  position: absolute;
 
  left: 15%;
 
  right: 15%;
 
  bottom: 20px;
 
  z-index: 10;
 
  padding-top: 20px;
 
  padding-bottom: 20px;
 
  color: $carousel-caption-color;
 
  text-align: center;
 
  text-shadow: $carousel-text-shadow;
 
  & .btn {
 
    text-shadow: none; // No shadow for button elements in carousel-caption
 
  }
 
}
 

	
 

	
 
// Scale up controls for tablets and up
 
@media screen and (min-width: $screen-sm-min) {
 

	
 
  // Scale up the controls a smidge
 
  .carousel-control {
 
    .glyphicon-chevron-left,
 
    .glyphicon-chevron-right,
 
    .icon-prev,
 
    .icon-next {
 
      width: ($carousel-control-font-size * 1.5);
 
      height: ($carousel-control-font-size * 1.5);
 
      margin-top: ($carousel-control-font-size / -2);
 
      font-size: ($carousel-control-font-size * 1.5);
 
    }
 
    .glyphicon-chevron-left,
 
    .icon-prev {
 
      margin-left: ($carousel-control-font-size / -2);
 
    }
 
    .glyphicon-chevron-right,
 
    .icon-next {
 
      margin-right: ($carousel-control-font-size / -2);
 
    }
 
  }
 

	
 
  // Show and left align the captions
 
  .carousel-caption {
 
    left: 20%;
 
    right: 20%;
 
    padding-bottom: 30px;
 
  }
 

	
 
  // Move up the indicators
 
  .carousel-indicators {
 
    bottom: 20px;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_close.scss
Show inline comments
 
new file 100644
 
//
 
// Close icons
 
// --------------------------------------------------
 

	
 

	
 
.close {
 
  float: right;
 
  font-size: ($font-size-base * 1.5);
 
  font-weight: $close-font-weight;
 
  line-height: 1;
 
  color: $close-color;
 
  text-shadow: $close-text-shadow;
 
  @include opacity(.2);
 

	
 
  &:hover,
 
  &:focus {
 
    color: $close-color;
 
    text-decoration: none;
 
    cursor: pointer;
 
    @include opacity(.5);
 
  }
 

	
 
  // [converter] extracted button& to button.close
 
}
 

	
 
// Additional properties for button version
 
// iOS requires the button element instead of an anchor tag.
 
// If you want the anchor version, it requires `href="#"`.
 
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
 
button.close {
 
  padding: 0;
 
  cursor: pointer;
 
  background: transparent;
 
  border: 0;
 
  -webkit-appearance: none;
 
}
static/bootstrap/stylesheets/bootstrap/_code.scss
Show inline comments
 
new file 100644
 
//
 
// Code (inline and block)
 
// --------------------------------------------------
 

	
 

	
 
// Inline and block code styles
 
code,
 
kbd,
 
pre,
 
samp {
 
  font-family: $font-family-monospace;
 
}
 

	
 
// Inline code
 
code {
 
  padding: 2px 4px;
 
  font-size: 90%;
 
  color: $code-color;
 
  background-color: $code-bg;
 
  border-radius: $border-radius-base;
 
}
 

	
 
// User input typically entered via keyboard
 
kbd {
 
  padding: 2px 4px;
 
  font-size: 90%;
 
  color: $kbd-color;
 
  background-color: $kbd-bg;
 
  border-radius: $border-radius-small;
 
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
 

	
 
  kbd {
 
    padding: 0;
 
    font-size: 100%;
 
    font-weight: bold;
 
    box-shadow: none;
 
  }
 
}
 

	
 
// Blocks of code
 
pre {
 
  display: block;
 
  padding: (($line-height-computed - 1) / 2);
 
  margin: 0 0 ($line-height-computed / 2);
 
  font-size: ($font-size-base - 1); // 14px to 13px
 
  line-height: $line-height-base;
 
  word-break: break-all;
 
  word-wrap: break-word;
 
  color: $pre-color;
 
  background-color: $pre-bg;
 
  border: 1px solid $pre-border-color;
 
  border-radius: $border-radius-base;
 

	
 
  // Account for some code outputs that place code tags in pre tags
 
  code {
 
    padding: 0;
 
    font-size: inherit;
 
    color: inherit;
 
    white-space: pre-wrap;
 
    background-color: transparent;
 
    border-radius: 0;
 
  }
 
}
 

	
 
// Enable scrollable blocks of code
 
.pre-scrollable {
 
  max-height: $pre-scrollable-max-height;
 
  overflow-y: scroll;
 
}
static/bootstrap/stylesheets/bootstrap/_component-animations.scss
Show inline comments
 
new file 100644
 
//
 
// Component animations
 
// --------------------------------------------------
 

	
 
// Heads up!
 
//
 
// We don't use the `.opacity()` mixin here since it causes a bug with text
 
// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
 

	
 
.fade {
 
  opacity: 0;
 
  @include transition(opacity .15s linear);
 
  &.in {
 
    opacity: 1;
 
  }
 
}
 

	
 
.collapse {
 
  display: none;
 

	
 
  &.in      { display: block; }
 
  // [converter] extracted tr&.in to tr.collapse.in
 
  // [converter] extracted tbody&.in to tbody.collapse.in
 
}
 

	
 
tr.collapse.in    { display: table-row; }
 

	
 
tbody.collapse.in { display: table-row-group; }
 

	
 
.collapsing {
 
  position: relative;
 
  height: 0;
 
  overflow: hidden;
 
  @include transition-property(height, visibility);
 
  @include transition-duration(.35s);
 
  @include transition-timing-function(ease);
 
}
static/bootstrap/stylesheets/bootstrap/_dropdowns.scss
Show inline comments
 
new file 100644
 
//
 
// Dropdown menus
 
// --------------------------------------------------
 

	
 

	
 
// Dropdown arrow/caret
 
.caret {
 
  display: inline-block;
 
  width: 0;
 
  height: 0;
 
  margin-left: 2px;
 
  vertical-align: middle;
 
  border-top:   $caret-width-base dashed;
 
  border-top:   $caret-width-base solid \9; // IE8
 
  border-right: $caret-width-base solid transparent;
 
  border-left:  $caret-width-base solid transparent;
 
}
 

	
 
// The dropdown wrapper (div)
 
.dropup,
 
.dropdown {
 
  position: relative;
 
}
 

	
 
// Prevent the focus on the dropdown toggle when closing dropdowns
 
.dropdown-toggle:focus {
 
  outline: 0;
 
}
 

	
 
// The dropdown menu (ul)
 
.dropdown-menu {
 
  position: absolute;
 
  top: 100%;
 
  left: 0;
 
  z-index: $zindex-dropdown;
 
  display: none; // none by default, but block on "open" of the menu
 
  float: left;
 
  min-width: 160px;
 
  padding: 5px 0;
 
  margin: 2px 0 0; // override default ul
 
  list-style: none;
 
  font-size: $font-size-base;
 
  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
 
  background-color: $dropdown-bg;
 
  border: 1px solid $dropdown-fallback-border; // IE8 fallback
 
  border: 1px solid $dropdown-border;
 
  border-radius: $border-radius-base;
 
  @include box-shadow(0 6px 12px rgba(0,0,0,.175));
 
  background-clip: padding-box;
 

	
 
  // Aligns the dropdown menu to right
 
  //
 
  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
 
  &.pull-right {
 
    right: 0;
 
    left: auto;
 
  }
 

	
 
  // Dividers (basically an hr) within the dropdown
 
  .divider {
 
    @include nav-divider($dropdown-divider-bg);
 
  }
 

	
 
  // Links within the dropdown menu
 
  > li > a {
 
    display: block;
 
    padding: 3px 20px;
 
    clear: both;
 
    font-weight: normal;
 
    line-height: $line-height-base;
 
    color: $dropdown-link-color;
 
    white-space: nowrap; // prevent links from randomly breaking onto new lines
 
  }
 
}
 

	
 
// Hover/Focus state
 
.dropdown-menu > li > a {
 
  &:hover,
 
  &:focus {
 
    text-decoration: none;
 
    color: $dropdown-link-hover-color;
 
    background-color: $dropdown-link-hover-bg;
 
  }
 
}
 

	
 
// Active state
 
.dropdown-menu > .active > a {
 
  &,
 
  &:hover,
 
  &:focus {
 
    color: $dropdown-link-active-color;
 
    text-decoration: none;
 
    outline: 0;
 
    background-color: $dropdown-link-active-bg;
 
  }
 
}
 

	
 
// Disabled state
 
//
 
// Gray out text and ensure the hover/focus state remains gray
 

	
 
.dropdown-menu > .disabled > a {
 
  &,
 
  &:hover,
 
  &:focus {
 
    color: $dropdown-link-disabled-color;
 
  }
 

	
 
  // Nuke hover/focus effects
 
  &:hover,
 
  &:focus {
 
    text-decoration: none;
 
    background-color: transparent;
 
    background-image: none; // Remove CSS gradient
 
    @include reset-filter;
 
    cursor: $cursor-disabled;
 
  }
 
}
 

	
 
// Open state for the dropdown
 
.open {
 
  // Show the menu
 
  > .dropdown-menu {
 
    display: block;
 
  }
 

	
 
  // Remove the outline when :focus is triggered
 
  > a {
 
    outline: 0;
 
  }
 
}
 

	
 
// Menu positioning
 
//
 
// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
 
// menu with the parent.
 
.dropdown-menu-right {
 
  left: auto; // Reset the default from `.dropdown-menu`
 
  right: 0;
 
}
 
// With v3, we enabled auto-flipping if you have a dropdown within a right
 
// aligned nav component. To enable the undoing of that, we provide an override
 
// to restore the default dropdown menu alignment.
 
//
 
// This is only for left-aligning a dropdown menu within a `.navbar-right` or
 
// `.pull-right` nav component.
 
.dropdown-menu-left {
 
  left: 0;
 
  right: auto;
 
}
 

	
 
// Dropdown section headers
 
.dropdown-header {
 
  display: block;
 
  padding: 3px 20px;
 
  font-size: $font-size-small;
 
  line-height: $line-height-base;
 
  color: $dropdown-header-color;
 
  white-space: nowrap; // as with > li > a
 
}
 

	
 
// Backdrop to catch body clicks on mobile, etc.
 
.dropdown-backdrop {
 
  position: fixed;
 
  left: 0;
 
  right: 0;
 
  bottom: 0;
 
  top: 0;
 
  z-index: ($zindex-dropdown - 10);
 
}
 

	
 
// Right aligned dropdowns
 
.pull-right > .dropdown-menu {
 
  right: 0;
 
  left: auto;
 
}
 

	
 
// Allow for dropdowns to go bottom up (aka, dropup-menu)
 
//
 
// Just add .dropup after the standard .dropdown class and you're set, bro.
 
// TODO: abstract this so that the navbar fixed styles are not placed here?
 

	
 
.dropup,
 
.navbar-fixed-bottom .dropdown {
 
  // Reverse the caret
 
  .caret {
 
    border-top: 0;
 
    border-bottom: $caret-width-base dashed;
 
    border-bottom: $caret-width-base solid \9; // IE8
 
    content: "";
 
  }
 
  // Different positioning for bottom up menu
 
  .dropdown-menu {
 
    top: auto;
 
    bottom: 100%;
 
    margin-bottom: 2px;
 
  }
 
}
 

	
 

	
 
// Component alignment
 
//
 
// Reiterate per navbar.less and the modified component alignment there.
 

	
 
@media (min-width: $grid-float-breakpoint) {
 
  .navbar-right {
 
    .dropdown-menu {
 
      right: 0; left: auto;
 
    }
 
    // Necessary for overrides of the default right aligned menu.
 
    // Will remove come v4 in all likelihood.
 
    .dropdown-menu-left {
 
      left: 0; right: auto;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_forms.scss
Show inline comments
 
new file 100644
 
//
 
// Forms
 
// --------------------------------------------------
 

	
 

	
 
// Normalize non-controls
 
//
 
// Restyle and baseline non-control form elements.
 

	
 
fieldset {
 
  padding: 0;
 
  margin: 0;
 
  border: 0;
 
  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
 
  // so we reset that to ensure it behaves more like a standard block element.
 
  // See https://github.com/twbs/bootstrap/issues/12359.
 
  min-width: 0;
 
}
 

	
 
legend {
 
  display: block;
 
  width: 100%;
 
  padding: 0;
 
  margin-bottom: $line-height-computed;
 
  font-size: ($font-size-base * 1.5);
 
  line-height: inherit;
 
  color: $legend-color;
 
  border: 0;
 
  border-bottom: 1px solid $legend-border-color;
 
}
 

	
 
label {
 
  display: inline-block;
 
  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
 
  margin-bottom: 5px;
 
  font-weight: bold;
 
}
 

	
 

	
 
// Normalize form controls
 
//
 
// While most of our form styles require extra classes, some basic normalization
 
// is required to ensure optimum display with or without those classes to better
 
// address browser inconsistencies.
 

	
 
// Override content-box in Normalize (* isn't specific enough)
 
input[type="search"] {
 
  @include box-sizing(border-box);
 
}
 

	
 
// Position radios and checkboxes better
 
input[type="radio"],
 
input[type="checkbox"] {
 
  margin: 4px 0 0;
 
  margin-top: 1px \9; // IE8-9
 
  line-height: normal;
 
}
 

	
 
input[type="file"] {
 
  display: block;
 
}
 

	
 
// Make range inputs behave like textual form controls
 
input[type="range"] {
 
  display: block;
 
  width: 100%;
 
}
 

	
 
// Make multiple select elements height not fixed
 
select[multiple],
 
select[size] {
 
  height: auto;
 
}
 

	
 
// Focus for file, radio, and checkbox
 
input[type="file"]:focus,
 
input[type="radio"]:focus,
 
input[type="checkbox"]:focus {
 
  @include tab-focus;
 
}
 

	
 
// Adjust output element
 
output {
 
  display: block;
 
  padding-top: ($padding-base-vertical + 1);
 
  font-size: $font-size-base;
 
  line-height: $line-height-base;
 
  color: $input-color;
 
}
 

	
 

	
 
// Common form controls
 
//
 
// Shared size and type resets for form controls. Apply `.form-control` to any
 
// of the following form controls:
 
//
 
// select
 
// textarea
 
// input[type="text"]
 
// input[type="password"]
 
// input[type="datetime"]
 
// input[type="datetime-local"]
 
// input[type="date"]
 
// input[type="month"]
 
// input[type="time"]
 
// input[type="week"]
 
// input[type="number"]
 
// input[type="email"]
 
// input[type="url"]
 
// input[type="search"]
 
// input[type="tel"]
 
// input[type="color"]
 

	
 
.form-control {
 
  display: block;
 
  width: 100%;
 
  height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
 
  padding: $padding-base-vertical $padding-base-horizontal;
 
  font-size: $font-size-base;
 
  line-height: $line-height-base;
 
  color: $input-color;
 
  background-color: $input-bg;
 
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
 
  border: 1px solid $input-border;
 
  border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
 
  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
 
  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
 

	
 
  // Customize the `:focus` state to imitate native WebKit styles.
 
  @include form-control-focus;
 

	
 
  // Placeholder
 
  @include placeholder;
 

	
 
  // Unstyle the caret on `<select>`s in IE10+.
 
  &::-ms-expand {
 
    border: 0;
 
    background-color: transparent;
 
  }
 

	
 
  // Disabled and read-only inputs
 
  //
 
  // HTML5 says that controls under a fieldset > legend:first-child won't be
 
  // disabled if the fieldset is disabled. Due to implementation difficulty, we
 
  // don't honor that edge case; we style them as disabled anyway.
 
  &[disabled],
 
  &[readonly],
 
  fieldset[disabled] & {
 
    background-color: $input-bg-disabled;
 
    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
 
  }
 

	
 
  &[disabled],
 
  fieldset[disabled] & {
 
    cursor: $cursor-disabled;
 
  }
 

	
 
  // [converter] extracted textarea& to textarea.form-control
 
}
 

	
 
// Reset height for `textarea`s
 
textarea.form-control {
 
  height: auto;
 
}
 

	
 

	
 
// Search inputs in iOS
 
//
 
// This overrides the extra rounded corners on search inputs in iOS so that our
 
// `.form-control` class can properly style them. Note that this cannot simply
 
// be added to `.form-control` as it's not specific enough. For details, see
 
// https://github.com/twbs/bootstrap/issues/11586.
 

	
 
input[type="search"] {
 
  -webkit-appearance: none;
 
}
 

	
 

	
 
// Special styles for iOS temporal inputs
 
//
 
// In Mobile Safari, setting `display: block` on temporal inputs causes the
 
// text within the input to become vertically misaligned. As a workaround, we
 
// set a pixel line-height that matches the given height of the input, but only
 
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
 
//
 
// Note that as of 9.3, iOS doesn't support `week`.
 

	
 
@media screen and (-webkit-min-device-pixel-ratio: 0) {
 
  input[type="date"],
 
  input[type="time"],
 
  input[type="datetime-local"],
 
  input[type="month"] {
 
    &.form-control {
 
      line-height: $input-height-base;
 
    }
 

	
 
    &.input-sm,
 
    .input-group-sm & {
 
      line-height: $input-height-small;
 
    }
 

	
 
    &.input-lg,
 
    .input-group-lg & {
 
      line-height: $input-height-large;
 
    }
 
  }
 
}
 

	
 

	
 
// Form groups
 
//
 
// Designed to help with the organization and spacing of vertical forms. For
 
// horizontal forms, use the predefined grid classes.
 

	
 
.form-group {
 
  margin-bottom: $form-group-margin-bottom;
 
}
 

	
 

	
 
// Checkboxes and radios
 
//
 
// Indent the labels to position radios/checkboxes as hanging controls.
 

	
 
.radio,
 
.checkbox {
 
  position: relative;
 
  display: block;
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 

	
 
  label {
 
    min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
 
    padding-left: 20px;
 
    margin-bottom: 0;
 
    font-weight: normal;
 
    cursor: pointer;
 
  }
 
}
 
.radio input[type="radio"],
 
.radio-inline input[type="radio"],
 
.checkbox input[type="checkbox"],
 
.checkbox-inline input[type="checkbox"] {
 
  position: absolute;
 
  margin-left: -20px;
 
  margin-top: 4px \9;
 
}
 

	
 
.radio + .radio,
 
.checkbox + .checkbox {
 
  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
 
}
 

	
 
// Radios and checkboxes on same line
 
.radio-inline,
 
.checkbox-inline {
 
  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; // space out consecutive inline controls
 
}
 

	
 
// Apply same disabled cursor tweak as for inputs
 
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
 
//
 
// Note: Neither radios nor checkboxes can be readonly.
 
input[type="radio"],
 
input[type="checkbox"] {
 
  &[disabled],
 
  &.disabled,
 
  fieldset[disabled] & {
 
    cursor: $cursor-disabled;
 
  }
 
}
 
// These classes are used directly on <label>s
 
.radio-inline,
 
.checkbox-inline {
 
  &.disabled,
 
  fieldset[disabled] & {
 
    cursor: $cursor-disabled;
 
  }
 
}
 
// These classes are used on elements with <label> descendants
 
.radio,
 
.checkbox {
 
  &.disabled,
 
  fieldset[disabled] & {
 
    label {
 
      cursor: $cursor-disabled;
 
    }
 
  }
 
}
 

	
 

	
 
// Static form control text
 
//
 
// Apply class to a `p` element to make any string of text align with labels in
 
// a horizontal form layout.
 

	
 
.form-control-static {
 
  // Size it appropriately next to real form controls
 
  padding-top: ($padding-base-vertical + 1);
 
  padding-bottom: ($padding-base-vertical + 1);
 
  // Remove default margin from `p`
 
  margin-bottom: 0;
 
  min-height: ($line-height-computed + $font-size-base);
 

	
 
  &.input-lg,
 
  &.input-sm {
 
    padding-left: 0;
 
    padding-right: 0;
 
  }
 
}
 

	
 

	
 
// Form control sizing
 
//
 
// Build on `.form-control` with modifier classes to decrease or increase the
 
// height and font-size of form controls.
 
//
 
// The `.form-group-* form-control` variations are sadly duplicated to avoid the
 
// issue documented in https://github.com/twbs/bootstrap/issues/15074.
 

	
 
@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
 
.form-group-sm {
 
  .form-control {
 
    height: $input-height-small;
 
    padding: $padding-small-vertical $padding-small-horizontal;
 
    font-size: $font-size-small;
 
    line-height: $line-height-small;
 
    border-radius: $input-border-radius-small;
 
  }
 
  select.form-control {
 
    height: $input-height-small;
 
    line-height: $input-height-small;
 
  }
 
  textarea.form-control,
 
  select[multiple].form-control {
 
    height: auto;
 
  }
 
  .form-control-static {
 
    height: $input-height-small;
 
    min-height: ($line-height-computed + $font-size-small);
 
    padding: ($padding-small-vertical + 1) $padding-small-horizontal;
 
    font-size: $font-size-small;
 
    line-height: $line-height-small;
 
  }
 
}
 

	
 
@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
 
.form-group-lg {
 
  .form-control {
 
    height: $input-height-large;
 
    padding: $padding-large-vertical $padding-large-horizontal;
 
    font-size: $font-size-large;
 
    line-height: $line-height-large;
 
    border-radius: $input-border-radius-large;
 
  }
 
  select.form-control {
 
    height: $input-height-large;
 
    line-height: $input-height-large;
 
  }
 
  textarea.form-control,
 
  select[multiple].form-control {
 
    height: auto;
 
  }
 
  .form-control-static {
 
    height: $input-height-large;
 
    min-height: ($line-height-computed + $font-size-large);
 
    padding: ($padding-large-vertical + 1) $padding-large-horizontal;
 
    font-size: $font-size-large;
 
    line-height: $line-height-large;
 
  }
 
}
 

	
 

	
 
// Form control feedback states
 
//
 
// Apply contextual and semantic states to individual form controls.
 

	
 
.has-feedback {
 
  // Enable absolute positioning
 
  position: relative;
 

	
 
  // Ensure icons don't overlap text
 
  .form-control {
 
    padding-right: ($input-height-base * 1.25);
 
  }
 
}
 
// Feedback icon (requires .glyphicon classes)
 
.form-control-feedback {
 
  position: absolute;
 
  top: 0;
 
  right: 0;
 
  z-index: 2; // Ensure icon is above input groups
 
  display: block;
 
  width: $input-height-base;
 
  height: $input-height-base;
 
  line-height: $input-height-base;
 
  text-align: center;
 
  pointer-events: none;
 
}
 
.input-lg + .form-control-feedback,
 
.input-group-lg + .form-control-feedback,
 
.form-group-lg .form-control + .form-control-feedback {
 
  width: $input-height-large;
 
  height: $input-height-large;
 
  line-height: $input-height-large;
 
}
 
.input-sm + .form-control-feedback,
 
.input-group-sm + .form-control-feedback,
 
.form-group-sm .form-control + .form-control-feedback {
 
  width: $input-height-small;
 
  height: $input-height-small;
 
  line-height: $input-height-small;
 
}
 

	
 
// Feedback states
 
.has-success {
 
  @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
 
}
 
.has-warning {
 
  @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
 
}
 
.has-error {
 
  @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
 
}
 

	
 
// Reposition feedback icon if input has visible label above
 
.has-feedback label {
 

	
 
  & ~ .form-control-feedback {
 
    top: ($line-height-computed + 5); // Height of the `label` and its margin
 
  }
 
  &.sr-only ~ .form-control-feedback {
 
    top: 0;
 
  }
 
}
 

	
 

	
 
// Help text
 
//
 
// Apply to any element you wish to create light text for placement immediately
 
// below a form control. Use for general help, formatting, or instructional text.
 

	
 
.help-block {
 
  display: block; // account for any element using help-block
 
  margin-top: 5px;
 
  margin-bottom: 10px;
 
  color: lighten($text-color, 25%); // lighten the text some for contrast
 
}
 

	
 

	
 
// Inline forms
 
//
 
// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
 
// forms begin stacked on extra small (mobile) devices and then go inline when
 
// viewports reach <768px.
 
//
 
// Requires wrapping inputs and labels with `.form-group` for proper display of
 
// default HTML form controls and our custom form controls (e.g., input groups).
 
//
 
// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
 

	
 
// [converter] extracted from `.form-inline` for libsass compatibility
 
@mixin form-inline {
 

	
 
  // Kick in the inline
 
  @media (min-width: $screen-sm-min) {
 
    // Inline-block all the things for "inline"
 
    .form-group {
 
      display: inline-block;
 
      margin-bottom: 0;
 
      vertical-align: middle;
 
    }
 

	
 
    // In navbar-form, allow folks to *not* use `.form-group`
 
    .form-control {
 
      display: inline-block;
 
      width: auto; // Prevent labels from stacking above inputs in `.form-group`
 
      vertical-align: middle;
 
    }
 

	
 
    // Make static controls behave like regular ones
 
    .form-control-static {
 
      display: inline-block;
 
    }
 

	
 
    .input-group {
 
      display: inline-table;
 
      vertical-align: middle;
 

	
 
      .input-group-addon,
 
      .input-group-btn,
 
      .form-control {
 
        width: auto;
 
      }
 
    }
 

	
 
    // Input groups need that 100% width though
 
    .input-group > .form-control {
 
      width: 100%;
 
    }
 

	
 
    .control-label {
 
      margin-bottom: 0;
 
      vertical-align: middle;
 
    }
 

	
 
    // Remove default margin on radios/checkboxes that were used for stacking, and
 
    // then undo the floating of radios and checkboxes to match.
 
    .radio,
 
    .checkbox {
 
      display: inline-block;
 
      margin-top: 0;
 
      margin-bottom: 0;
 
      vertical-align: middle;
 

	
 
      label {
 
        padding-left: 0;
 
      }
 
    }
 
    .radio input[type="radio"],
 
    .checkbox input[type="checkbox"] {
 
      position: relative;
 
      margin-left: 0;
 
    }
 

	
 
    // Re-override the feedback icon.
 
    .has-feedback .form-control-feedback {
 
      top: 0;
 
    }
 
  }
 
}
 
// [converter] extracted as `@mixin form-inline` for libsass compatibility
 
.form-inline {
 
  @include form-inline;
 
}
 

	
 

	
 

	
 
// Horizontal forms
 
//
 
// Horizontal forms are built on grid classes and allow you to create forms with
 
// labels on the left and inputs on the right.
 

	
 
.form-horizontal {
 

	
 
  // Consistent vertical alignment of radios and checkboxes
 
  //
 
  // Labels also get some reset styles, but that is scoped to a media query below.
 
  .radio,
 
  .checkbox,
 
  .radio-inline,
 
  .checkbox-inline {
 
    margin-top: 0;
 
    margin-bottom: 0;
 
    padding-top: ($padding-base-vertical + 1); // Default padding plus a border
 
  }
 
  // Account for padding we're adding to ensure the alignment and of help text
 
  // and other content below items
 
  .radio,
 
  .checkbox {
 
    min-height: ($line-height-computed + ($padding-base-vertical + 1));
 
  }
 

	
 
  // Make form groups behave like rows
 
  .form-group {
 
    @include make-row;
 
  }
 

	
 
  // Reset spacing and right align labels, but scope to media queries so that
 
  // labels on narrow viewports stack the same as a default form example.
 
  @media (min-width: $screen-sm-min) {
 
    .control-label {
 
      text-align: right;
 
      margin-bottom: 0;
 
      padding-top: ($padding-base-vertical + 1); // Default padding plus a border
 
    }
 
  }
 

	
 
  // Validation states
 
  //
 
  // Reposition the icon because it's now within a grid column and columns have
 
  // `position: relative;` on them. Also accounts for the grid gutter padding.
 
  .has-feedback .form-control-feedback {
 
    right: floor(($grid-gutter-width / 2));
 
  }
 

	
 
  // Form group sizes
 
  //
 
  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
 
  // inputs and labels within a `.form-group`.
 
  .form-group-lg {
 
    @media (min-width: $screen-sm-min) {
 
      .control-label {
 
        padding-top: ($padding-large-vertical + 1);
 
        font-size: $font-size-large;
 
      }
 
    }
 
  }
 
  .form-group-sm {
 
    @media (min-width: $screen-sm-min) {
 
      .control-label {
 
        padding-top: ($padding-small-vertical + 1);
 
        font-size: $font-size-small;
 
      }
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_glyphicons.scss
Show inline comments
 
new file 100644
 
//
 
// Glyphicons for Bootstrap
 
//
 
// Since icons are fonts, they can be placed anywhere text is placed and are
 
// thus automatically sized to match the surrounding child. To use, create an
 
// inline element with the appropriate classes, like so:
 
//
 
// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
 

	
 
@at-root {
 
  // Import the fonts
 
  @font-face {
 
    font-family: 'Glyphicons Halflings';
 
    src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
 
    src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
 
         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'),
 
         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
 
         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
 
         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
 
  }
 
}
 

	
 
// Catchall baseclass
 
.glyphicon {
 
  position: relative;
 
  top: 1px;
 
  display: inline-block;
 
  font-family: 'Glyphicons Halflings';
 
  font-style: normal;
 
  font-weight: normal;
 
  line-height: 1;
 
  -webkit-font-smoothing: antialiased;
 
  -moz-osx-font-smoothing: grayscale;
 
}
 

	
 
// Individual icons
 
.glyphicon-asterisk               { &:before { content: "\002a"; } }
 
.glyphicon-plus                   { &:before { content: "\002b"; } }
 
.glyphicon-euro,
 
.glyphicon-eur                    { &:before { content: "\20ac"; } }
 
.glyphicon-minus                  { &:before { content: "\2212"; } }
 
.glyphicon-cloud                  { &:before { content: "\2601"; } }
 
.glyphicon-envelope               { &:before { content: "\2709"; } }
 
.glyphicon-pencil                 { &:before { content: "\270f"; } }
 
.glyphicon-glass                  { &:before { content: "\e001"; } }
 
.glyphicon-music                  { &:before { content: "\e002"; } }
 
.glyphicon-search                 { &:before { content: "\e003"; } }
 
.glyphicon-heart                  { &:before { content: "\e005"; } }
 
.glyphicon-star                   { &:before { content: "\e006"; } }
 
.glyphicon-star-empty             { &:before { content: "\e007"; } }
 
.glyphicon-user                   { &:before { content: "\e008"; } }
 
.glyphicon-film                   { &:before { content: "\e009"; } }
 
.glyphicon-th-large               { &:before { content: "\e010"; } }
 
.glyphicon-th                     { &:before { content: "\e011"; } }
 
.glyphicon-th-list                { &:before { content: "\e012"; } }
 
.glyphicon-ok                     { &:before { content: "\e013"; } }
 
.glyphicon-remove                 { &:before { content: "\e014"; } }
 
.glyphicon-zoom-in                { &:before { content: "\e015"; } }
 
.glyphicon-zoom-out               { &:before { content: "\e016"; } }
 
.glyphicon-off                    { &:before { content: "\e017"; } }
 
.glyphicon-signal                 { &:before { content: "\e018"; } }
 
.glyphicon-cog                    { &:before { content: "\e019"; } }
 
.glyphicon-trash                  { &:before { content: "\e020"; } }
 
.glyphicon-home                   { &:before { content: "\e021"; } }
 
.glyphicon-file                   { &:before { content: "\e022"; } }
 
.glyphicon-time                   { &:before { content: "\e023"; } }
 
.glyphicon-road                   { &:before { content: "\e024"; } }
 
.glyphicon-download-alt           { &:before { content: "\e025"; } }
 
.glyphicon-download               { &:before { content: "\e026"; } }
 
.glyphicon-upload                 { &:before { content: "\e027"; } }
 
.glyphicon-inbox                  { &:before { content: "\e028"; } }
 
.glyphicon-play-circle            { &:before { content: "\e029"; } }
 
.glyphicon-repeat                 { &:before { content: "\e030"; } }
 
.glyphicon-refresh                { &:before { content: "\e031"; } }
 
.glyphicon-list-alt               { &:before { content: "\e032"; } }
 
.glyphicon-lock                   { &:before { content: "\e033"; } }
 
.glyphicon-flag                   { &:before { content: "\e034"; } }
 
.glyphicon-headphones             { &:before { content: "\e035"; } }
 
.glyphicon-volume-off             { &:before { content: "\e036"; } }
 
.glyphicon-volume-down            { &:before { content: "\e037"; } }
 
.glyphicon-volume-up              { &:before { content: "\e038"; } }
 
.glyphicon-qrcode                 { &:before { content: "\e039"; } }
 
.glyphicon-barcode                { &:before { content: "\e040"; } }
 
.glyphicon-tag                    { &:before { content: "\e041"; } }
 
.glyphicon-tags                   { &:before { content: "\e042"; } }
 
.glyphicon-book                   { &:before { content: "\e043"; } }
 
.glyphicon-bookmark               { &:before { content: "\e044"; } }
 
.glyphicon-print                  { &:before { content: "\e045"; } }
 
.glyphicon-camera                 { &:before { content: "\e046"; } }
 
.glyphicon-font                   { &:before { content: "\e047"; } }
 
.glyphicon-bold                   { &:before { content: "\e048"; } }
 
.glyphicon-italic                 { &:before { content: "\e049"; } }
 
.glyphicon-text-height            { &:before { content: "\e050"; } }
 
.glyphicon-text-width             { &:before { content: "\e051"; } }
 
.glyphicon-align-left             { &:before { content: "\e052"; } }
 
.glyphicon-align-center           { &:before { content: "\e053"; } }
 
.glyphicon-align-right            { &:before { content: "\e054"; } }
 
.glyphicon-align-justify          { &:before { content: "\e055"; } }
 
.glyphicon-list                   { &:before { content: "\e056"; } }
 
.glyphicon-indent-left            { &:before { content: "\e057"; } }
 
.glyphicon-indent-right           { &:before { content: "\e058"; } }
 
.glyphicon-facetime-video         { &:before { content: "\e059"; } }
 
.glyphicon-picture                { &:before { content: "\e060"; } }
 
.glyphicon-map-marker             { &:before { content: "\e062"; } }
 
.glyphicon-adjust                 { &:before { content: "\e063"; } }
 
.glyphicon-tint                   { &:before { content: "\e064"; } }
 
.glyphicon-edit                   { &:before { content: "\e065"; } }
 
.glyphicon-share                  { &:before { content: "\e066"; } }
 
.glyphicon-check                  { &:before { content: "\e067"; } }
 
.glyphicon-move                   { &:before { content: "\e068"; } }
 
.glyphicon-step-backward          { &:before { content: "\e069"; } }
 
.glyphicon-fast-backward          { &:before { content: "\e070"; } }
 
.glyphicon-backward               { &:before { content: "\e071"; } }
 
.glyphicon-play                   { &:before { content: "\e072"; } }
 
.glyphicon-pause                  { &:before { content: "\e073"; } }
 
.glyphicon-stop                   { &:before { content: "\e074"; } }
 
.glyphicon-forward                { &:before { content: "\e075"; } }
 
.glyphicon-fast-forward           { &:before { content: "\e076"; } }
 
.glyphicon-step-forward           { &:before { content: "\e077"; } }
 
.glyphicon-eject                  { &:before { content: "\e078"; } }
 
.glyphicon-chevron-left           { &:before { content: "\e079"; } }
 
.glyphicon-chevron-right          { &:before { content: "\e080"; } }
 
.glyphicon-plus-sign              { &:before { content: "\e081"; } }
 
.glyphicon-minus-sign             { &:before { content: "\e082"; } }
 
.glyphicon-remove-sign            { &:before { content: "\e083"; } }
 
.glyphicon-ok-sign                { &:before { content: "\e084"; } }
 
.glyphicon-question-sign          { &:before { content: "\e085"; } }
 
.glyphicon-info-sign              { &:before { content: "\e086"; } }
 
.glyphicon-screenshot             { &:before { content: "\e087"; } }
 
.glyphicon-remove-circle          { &:before { content: "\e088"; } }
 
.glyphicon-ok-circle              { &:before { content: "\e089"; } }
 
.glyphicon-ban-circle             { &:before { content: "\e090"; } }
 
.glyphicon-arrow-left             { &:before { content: "\e091"; } }
 
.glyphicon-arrow-right            { &:before { content: "\e092"; } }
 
.glyphicon-arrow-up               { &:before { content: "\e093"; } }
 
.glyphicon-arrow-down             { &:before { content: "\e094"; } }
 
.glyphicon-share-alt              { &:before { content: "\e095"; } }
 
.glyphicon-resize-full            { &:before { content: "\e096"; } }
 
.glyphicon-resize-small           { &:before { content: "\e097"; } }
 
.glyphicon-exclamation-sign       { &:before { content: "\e101"; } }
 
.glyphicon-gift                   { &:before { content: "\e102"; } }
 
.glyphicon-leaf                   { &:before { content: "\e103"; } }
 
.glyphicon-fire                   { &:before { content: "\e104"; } }
 
.glyphicon-eye-open               { &:before { content: "\e105"; } }
 
.glyphicon-eye-close              { &:before { content: "\e106"; } }
 
.glyphicon-warning-sign           { &:before { content: "\e107"; } }
 
.glyphicon-plane                  { &:before { content: "\e108"; } }
 
.glyphicon-calendar               { &:before { content: "\e109"; } }
 
.glyphicon-random                 { &:before { content: "\e110"; } }
 
.glyphicon-comment                { &:before { content: "\e111"; } }
 
.glyphicon-magnet                 { &:before { content: "\e112"; } }
 
.glyphicon-chevron-up             { &:before { content: "\e113"; } }
 
.glyphicon-chevron-down           { &:before { content: "\e114"; } }
 
.glyphicon-retweet                { &:before { content: "\e115"; } }
 
.glyphicon-shopping-cart          { &:before { content: "\e116"; } }
 
.glyphicon-folder-close           { &:before { content: "\e117"; } }
 
.glyphicon-folder-open            { &:before { content: "\e118"; } }
 
.glyphicon-resize-vertical        { &:before { content: "\e119"; } }
 
.glyphicon-resize-horizontal      { &:before { content: "\e120"; } }
 
.glyphicon-hdd                    { &:before { content: "\e121"; } }
 
.glyphicon-bullhorn               { &:before { content: "\e122"; } }
 
.glyphicon-bell                   { &:before { content: "\e123"; } }
 
.glyphicon-certificate            { &:before { content: "\e124"; } }
 
.glyphicon-thumbs-up              { &:before { content: "\e125"; } }
 
.glyphicon-thumbs-down            { &:before { content: "\e126"; } }
 
.glyphicon-hand-right             { &:before { content: "\e127"; } }
 
.glyphicon-hand-left              { &:before { content: "\e128"; } }
 
.glyphicon-hand-up                { &:before { content: "\e129"; } }
 
.glyphicon-hand-down              { &:before { content: "\e130"; } }
 
.glyphicon-circle-arrow-right     { &:before { content: "\e131"; } }
 
.glyphicon-circle-arrow-left      { &:before { content: "\e132"; } }
 
.glyphicon-circle-arrow-up        { &:before { content: "\e133"; } }
 
.glyphicon-circle-arrow-down      { &:before { content: "\e134"; } }
 
.glyphicon-globe                  { &:before { content: "\e135"; } }
 
.glyphicon-wrench                 { &:before { content: "\e136"; } }
 
.glyphicon-tasks                  { &:before { content: "\e137"; } }
 
.glyphicon-filter                 { &:before { content: "\e138"; } }
 
.glyphicon-briefcase              { &:before { content: "\e139"; } }
 
.glyphicon-fullscreen             { &:before { content: "\e140"; } }
 
.glyphicon-dashboard              { &:before { content: "\e141"; } }
 
.glyphicon-paperclip              { &:before { content: "\e142"; } }
 
.glyphicon-heart-empty            { &:before { content: "\e143"; } }
 
.glyphicon-link                   { &:before { content: "\e144"; } }
 
.glyphicon-phone                  { &:before { content: "\e145"; } }
 
.glyphicon-pushpin                { &:before { content: "\e146"; } }
 
.glyphicon-usd                    { &:before { content: "\e148"; } }
 
.glyphicon-gbp                    { &:before { content: "\e149"; } }
 
.glyphicon-sort                   { &:before { content: "\e150"; } }
 
.glyphicon-sort-by-alphabet       { &:before { content: "\e151"; } }
 
.glyphicon-sort-by-alphabet-alt   { &:before { content: "\e152"; } }
 
.glyphicon-sort-by-order          { &:before { content: "\e153"; } }
 
.glyphicon-sort-by-order-alt      { &:before { content: "\e154"; } }
 
.glyphicon-sort-by-attributes     { &:before { content: "\e155"; } }
 
.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
 
.glyphicon-unchecked              { &:before { content: "\e157"; } }
 
.glyphicon-expand                 { &:before { content: "\e158"; } }
 
.glyphicon-collapse-down          { &:before { content: "\e159"; } }
 
.glyphicon-collapse-up            { &:before { content: "\e160"; } }
 
.glyphicon-log-in                 { &:before { content: "\e161"; } }
 
.glyphicon-flash                  { &:before { content: "\e162"; } }
 
.glyphicon-log-out                { &:before { content: "\e163"; } }
 
.glyphicon-new-window             { &:before { content: "\e164"; } }
 
.glyphicon-record                 { &:before { content: "\e165"; } }
 
.glyphicon-save                   { &:before { content: "\e166"; } }
 
.glyphicon-open                   { &:before { content: "\e167"; } }
 
.glyphicon-saved                  { &:before { content: "\e168"; } }
 
.glyphicon-import                 { &:before { content: "\e169"; } }
 
.glyphicon-export                 { &:before { content: "\e170"; } }
 
.glyphicon-send                   { &:before { content: "\e171"; } }
 
.glyphicon-floppy-disk            { &:before { content: "\e172"; } }
 
.glyphicon-floppy-saved           { &:before { content: "\e173"; } }
 
.glyphicon-floppy-remove          { &:before { content: "\e174"; } }
 
.glyphicon-floppy-save            { &:before { content: "\e175"; } }
 
.glyphicon-floppy-open            { &:before { content: "\e176"; } }
 
.glyphicon-credit-card            { &:before { content: "\e177"; } }
 
.glyphicon-transfer               { &:before { content: "\e178"; } }
 
.glyphicon-cutlery                { &:before { content: "\e179"; } }
 
.glyphicon-header                 { &:before { content: "\e180"; } }
 
.glyphicon-compressed             { &:before { content: "\e181"; } }
 
.glyphicon-earphone               { &:before { content: "\e182"; } }
 
.glyphicon-phone-alt              { &:before { content: "\e183"; } }
 
.glyphicon-tower                  { &:before { content: "\e184"; } }
 
.glyphicon-stats                  { &:before { content: "\e185"; } }
 
.glyphicon-sd-video               { &:before { content: "\e186"; } }
 
.glyphicon-hd-video               { &:before { content: "\e187"; } }
 
.glyphicon-subtitles              { &:before { content: "\e188"; } }
 
.glyphicon-sound-stereo           { &:before { content: "\e189"; } }
 
.glyphicon-sound-dolby            { &:before { content: "\e190"; } }
 
.glyphicon-sound-5-1              { &:before { content: "\e191"; } }
 
.glyphicon-sound-6-1              { &:before { content: "\e192"; } }
 
.glyphicon-sound-7-1              { &:before { content: "\e193"; } }
 
.glyphicon-copyright-mark         { &:before { content: "\e194"; } }
 
.glyphicon-registration-mark      { &:before { content: "\e195"; } }
 
.glyphicon-cloud-download         { &:before { content: "\e197"; } }
 
.glyphicon-cloud-upload           { &:before { content: "\e198"; } }
 
.glyphicon-tree-conifer           { &:before { content: "\e199"; } }
 
.glyphicon-tree-deciduous         { &:before { content: "\e200"; } }
 
.glyphicon-cd                     { &:before { content: "\e201"; } }
 
.glyphicon-save-file              { &:before { content: "\e202"; } }
 
.glyphicon-open-file              { &:before { content: "\e203"; } }
 
.glyphicon-level-up               { &:before { content: "\e204"; } }
 
.glyphicon-copy                   { &:before { content: "\e205"; } }
 
.glyphicon-paste                  { &:before { content: "\e206"; } }
 
// The following 2 Glyphicons are omitted for the time being because
 
// they currently use Unicode codepoints that are outside the
 
// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle
 
// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.
 
// Notably, the bug affects some older versions of the Android Browser.
 
// More info: https://github.com/twbs/bootstrap/issues/10106
 
// .glyphicon-door                   { &:before { content: "\1f6aa"; } }
 
// .glyphicon-key                    { &:before { content: "\1f511"; } }
 
.glyphicon-alert                  { &:before { content: "\e209"; } }
 
.glyphicon-equalizer              { &:before { content: "\e210"; } }
 
.glyphicon-king                   { &:before { content: "\e211"; } }
 
.glyphicon-queen                  { &:before { content: "\e212"; } }
 
.glyphicon-pawn                   { &:before { content: "\e213"; } }
 
.glyphicon-bishop                 { &:before { content: "\e214"; } }
 
.glyphicon-knight                 { &:before { content: "\e215"; } }
 
.glyphicon-baby-formula           { &:before { content: "\e216"; } }
 
.glyphicon-tent                   { &:before { content: "\26fa"; } }
 
.glyphicon-blackboard             { &:before { content: "\e218"; } }
 
.glyphicon-bed                    { &:before { content: "\e219"; } }
 
.glyphicon-apple                  { &:before { content: "\f8ff"; } }
 
.glyphicon-erase                  { &:before { content: "\e221"; } }
 
.glyphicon-hourglass              { &:before { content: "\231b"; } }
 
.glyphicon-lamp                   { &:before { content: "\e223"; } }
 
.glyphicon-duplicate              { &:before { content: "\e224"; } }
 
.glyphicon-piggy-bank             { &:before { content: "\e225"; } }
 
.glyphicon-scissors               { &:before { content: "\e226"; } }
 
.glyphicon-bitcoin                { &:before { content: "\e227"; } }
 
.glyphicon-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"; } }
static/bootstrap/stylesheets/bootstrap/_grid.scss
Show inline comments
 
new file 100644
 
//
 
// Grid system
 
// --------------------------------------------------
 

	
 

	
 
// Container widths
 
//
 
// Set the container width, and override it for fixed navbars in media queries.
 

	
 
.container {
 
  @include container-fixed;
 

	
 
  @media (min-width: $screen-sm-min) {
 
    width: $container-sm;
 
  }
 
  @media (min-width: $screen-md-min) {
 
    width: $container-md;
 
  }
 
  @media (min-width: $screen-lg-min) {
 
    width: $container-lg;
 
  }
 
}
 

	
 

	
 
// Fluid container
 
//
 
// Utilizes the mixin meant for fixed width containers, but without any defined
 
// width for fluid, full width layouts.
 

	
 
.container-fluid {
 
  @include container-fixed;
 
}
 

	
 

	
 
// Row
 
//
 
// Rows contain and clear the floats of your columns.
 

	
 
.row {
 
  @include make-row;
 
}
 

	
 

	
 
// Columns
 
//
 
// Common styles for small and large grid columns
 

	
 
@include make-grid-columns;
 

	
 

	
 
// Extra small grid
 
//
 
// Columns, offsets, pushes, and pulls for extra small devices like
 
// smartphones.
 

	
 
@include make-grid(xs);
 

	
 

	
 
// Small grid
 
//
 
// Columns, offsets, pushes, and pulls for the small device range, from phones
 
// to tablets.
 

	
 
@media (min-width: $screen-sm-min) {
 
  @include make-grid(sm);
 
}
 

	
 

	
 
// Medium grid
 
//
 
// Columns, offsets, pushes, and pulls for the desktop device range.
 

	
 
@media (min-width: $screen-md-min) {
 
  @include make-grid(md);
 
}
 

	
 

	
 
// Large grid
 
//
 
// Columns, offsets, pushes, and pulls for the large desktop device range.
 

	
 
@media (min-width: $screen-lg-min) {
 
  @include make-grid(lg);
 
}
static/bootstrap/stylesheets/bootstrap/_input-groups.scss
Show inline comments
 
new file 100644
 
//
 
// Input groups
 
// --------------------------------------------------
 

	
 
// Base styles
 
// -------------------------
 
.input-group {
 
  position: relative; // For dropdowns
 
  display: table;
 
  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
 

	
 
  // Undo padding and float of grid classes
 
  &[class*="col-"] {
 
    float: none;
 
    padding-left: 0;
 
    padding-right: 0;
 
  }
 

	
 
  .form-control {
 
    // Ensure that the input is always above the *appended* addon button for
 
    // proper border colors.
 
    position: relative;
 
    z-index: 2;
 

	
 
    // IE9 fubars the placeholder attribute in text inputs and the arrows on
 
    // select elements in input groups. To fix it, we float the input. Details:
 
    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
 
    float: left;
 

	
 
    width: 100%;
 
    margin-bottom: 0;
 

	
 
    &:focus {
 
      z-index: 3;
 
    }
 
  }
 
}
 

	
 
// Sizing options
 
//
 
// Remix the default form control sizing classes into new ones for easier
 
// manipulation.
 

	
 
.input-group-lg > .form-control,
 
.input-group-lg > .input-group-addon,
 
.input-group-lg > .input-group-btn > .btn {
 
  @extend .input-lg;
 
}
 
.input-group-sm > .form-control,
 
.input-group-sm > .input-group-addon,
 
.input-group-sm > .input-group-btn > .btn {
 
  @extend .input-sm;
 
}
 

	
 

	
 
// Display as table-cell
 
// -------------------------
 
.input-group-addon,
 
.input-group-btn,
 
.input-group .form-control {
 
  display: table-cell;
 

	
 
  &:not(:first-child):not(:last-child) {
 
    border-radius: 0;
 
  }
 
}
 
// Addon and addon wrapper for buttons
 
.input-group-addon,
 
.input-group-btn {
 
  width: 1%;
 
  white-space: nowrap;
 
  vertical-align: middle; // Match the inputs
 
}
 

	
 
// Text input groups
 
// -------------------------
 
.input-group-addon {
 
  padding: $padding-base-vertical $padding-base-horizontal;
 
  font-size: $font-size-base;
 
  font-weight: normal;
 
  line-height: 1;
 
  color: $input-color;
 
  text-align: center;
 
  background-color: $input-group-addon-bg;
 
  border: 1px solid $input-group-addon-border-color;
 
  border-radius: $input-border-radius;
 

	
 
  // Sizing
 
  &.input-sm {
 
    padding: $padding-small-vertical $padding-small-horizontal;
 
    font-size: $font-size-small;
 
    border-radius: $input-border-radius-small;
 
  }
 
  &.input-lg {
 
    padding: $padding-large-vertical $padding-large-horizontal;
 
    font-size: $font-size-large;
 
    border-radius: $input-border-radius-large;
 
  }
 

	
 
  // Nuke default margins from checkboxes and radios to vertically center within.
 
  input[type="radio"],
 
  input[type="checkbox"] {
 
    margin-top: 0;
 
  }
 
}
 

	
 
// Reset rounded corners
 
.input-group .form-control:first-child,
 
.input-group-addon:first-child,
 
.input-group-btn:first-child > .btn,
 
.input-group-btn:first-child > .btn-group > .btn,
 
.input-group-btn:first-child > .dropdown-toggle,
 
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
 
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
 
  @include border-right-radius(0);
 
}
 
.input-group-addon:first-child {
 
  border-right: 0;
 
}
 
.input-group .form-control:last-child,
 
.input-group-addon:last-child,
 
.input-group-btn:last-child > .btn,
 
.input-group-btn:last-child > .btn-group > .btn,
 
.input-group-btn:last-child > .dropdown-toggle,
 
.input-group-btn:first-child > .btn:not(:first-child),
 
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
 
  @include border-left-radius(0);
 
}
 
.input-group-addon:last-child {
 
  border-left: 0;
 
}
 

	
 
// Button input groups
 
// -------------------------
 
.input-group-btn {
 
  position: relative;
 
  // Jankily prevent input button groups from wrapping with `white-space` and
 
  // `font-size` in combination with `inline-block` on buttons.
 
  font-size: 0;
 
  white-space: nowrap;
 

	
 
  // Negative margin for spacing, position for bringing hovered/focused/actived
 
  // element above the siblings.
 
  > .btn {
 
    position: relative;
 
    + .btn {
 
      margin-left: -1px;
 
    }
 
    // Bring the "active" button to the front
 
    &:hover,
 
    &:focus,
 
    &:active {
 
      z-index: 2;
 
    }
 
  }
 

	
 
  // Negative margin to only have a 1px border between the two
 
  &:first-child {
 
    > .btn,
 
    > .btn-group {
 
      margin-right: -1px;
 
    }
 
  }
 
  &:last-child {
 
    > .btn,
 
    > .btn-group {
 
      z-index: 2;
 
      margin-left: -1px;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_jumbotron.scss
Show inline comments
 
new file 100644
 
//
 
// Jumbotron
 
// --------------------------------------------------
 

	
 

	
 
.jumbotron {
 
  padding-top:    $jumbotron-padding;
 
  padding-bottom: $jumbotron-padding;
 
  margin-bottom: $jumbotron-padding;
 
  color: $jumbotron-color;
 
  background-color: $jumbotron-bg;
 

	
 
  h1,
 
  .h1 {
 
    color: $jumbotron-heading-color;
 
  }
 

	
 
  p {
 
    margin-bottom: ($jumbotron-padding / 2);
 
    font-size: $jumbotron-font-size;
 
    font-weight: 200;
 
  }
 

	
 
  > hr {
 
    border-top-color: darken($jumbotron-bg, 10%);
 
  }
 

	
 
  .container &,
 
  .container-fluid & {
 
    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
 
    padding-left:  ($grid-gutter-width / 2);
 
    padding-right: ($grid-gutter-width / 2);
 
  }
 

	
 
  .container {
 
    max-width: 100%;
 
  }
 

	
 
  @media screen and (min-width: $screen-sm-min) {
 
    padding-top:    ($jumbotron-padding * 1.6);
 
    padding-bottom: ($jumbotron-padding * 1.6);
 

	
 
    .container &,
 
    .container-fluid & {
 
      padding-left:  ($jumbotron-padding * 2);
 
      padding-right: ($jumbotron-padding * 2);
 
    }
 

	
 
    h1,
 
    .h1 {
 
      font-size: $jumbotron-heading-font-size;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_labels.scss
Show inline comments
 
new file 100644
 
//
 
// Labels
 
// --------------------------------------------------
 

	
 
.label {
 
  display: inline;
 
  padding: .2em .6em .3em;
 
  font-size: 75%;
 
  font-weight: bold;
 
  line-height: 1;
 
  color: $label-color;
 
  text-align: center;
 
  white-space: nowrap;
 
  vertical-align: baseline;
 
  border-radius: .25em;
 

	
 
  // [converter] extracted a& to a.label
 

	
 
  // Empty labels collapse automatically (not available in IE8)
 
  &:empty {
 
    display: none;
 
  }
 

	
 
  // Quick fix for labels in buttons
 
  .btn & {
 
    position: relative;
 
    top: -1px;
 
  }
 
}
 

	
 
// Add hover effects, but only for links
 
a.label {
 
  &:hover,
 
  &:focus {
 
    color: $label-link-hover-color;
 
    text-decoration: none;
 
    cursor: pointer;
 
  }
 
}
 

	
 
// Colors
 
// Contextual variations (linked labels get darker on :hover)
 

	
 
.label-default {
 
  @include label-variant($label-default-bg);
 
}
 

	
 
.label-primary {
 
  @include label-variant($label-primary-bg);
 
}
 

	
 
.label-success {
 
  @include label-variant($label-success-bg);
 
}
 

	
 
.label-info {
 
  @include label-variant($label-info-bg);
 
}
 

	
 
.label-warning {
 
  @include label-variant($label-warning-bg);
 
}
 

	
 
.label-danger {
 
  @include label-variant($label-danger-bg);
 
}
static/bootstrap/stylesheets/bootstrap/_list-group.scss
Show inline comments
 
new file 100644
 
//
 
// List groups
 
// --------------------------------------------------
 

	
 

	
 
// Base class
 
//
 
// Easily usable on <ul>, <ol>, or <div>.
 

	
 
.list-group {
 
  // No need to set list-style: none; since .list-group-item is block level
 
  margin-bottom: 20px;
 
  padding-left: 0; // reset padding because ul and ol
 
}
 

	
 

	
 
// Individual list items
 
//
 
// Use on `li`s or `div`s within the `.list-group` parent.
 

	
 
.list-group-item {
 
  position: relative;
 
  display: block;
 
  padding: 10px 15px;
 
  // Place the border on the list items and negative margin up for better styling
 
  margin-bottom: -1px;
 
  background-color: $list-group-bg;
 
  border: 1px solid $list-group-border;
 

	
 
  // Round the first and last items
 
  &:first-child {
 
    @include border-top-radius($list-group-border-radius);
 
  }
 
  &:last-child {
 
    margin-bottom: 0;
 
    @include border-bottom-radius($list-group-border-radius);
 
  }
 
}
 

	
 

	
 
// Interactive list items
 
//
 
// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
 
// Includes an extra `.active` modifier class for showing selected items.
 

	
 
a.list-group-item,
 
button.list-group-item {
 
  color: $list-group-link-color;
 

	
 
  .list-group-item-heading {
 
    color: $list-group-link-heading-color;
 
  }
 

	
 
  // Hover state
 
  &:hover,
 
  &:focus {
 
    text-decoration: none;
 
    color: $list-group-link-hover-color;
 
    background-color: $list-group-hover-bg;
 
  }
 
}
 

	
 
button.list-group-item {
 
  width: 100%;
 
  text-align: left;
 
}
 

	
 
.list-group-item {
 
  // Disabled state
 
  &.disabled,
 
  &.disabled:hover,
 
  &.disabled:focus {
 
    background-color: $list-group-disabled-bg;
 
    color: $list-group-disabled-color;
 
    cursor: $cursor-disabled;
 

	
 
    // Force color to inherit for custom content
 
    .list-group-item-heading {
 
      color: inherit;
 
    }
 
    .list-group-item-text {
 
      color: $list-group-disabled-text-color;
 
    }
 
  }
 

	
 
  // Active class on item itself, not parent
 
  &.active,
 
  &.active:hover,
 
  &.active:focus {
 
    z-index: 2; // Place active items above their siblings for proper border styling
 
    color: $list-group-active-color;
 
    background-color: $list-group-active-bg;
 
    border-color: $list-group-active-border;
 

	
 
    // Force color to inherit for custom content
 
    .list-group-item-heading,
 
    .list-group-item-heading > small,
 
    .list-group-item-heading > .small {
 
      color: inherit;
 
    }
 
    .list-group-item-text {
 
      color: $list-group-active-text-color;
 
    }
 
  }
 
}
 

	
 

	
 
// Contextual variants
 
//
 
// Add modifier classes to change text and background color on individual items.
 
// Organizationally, this must come after the `:hover` states.
 

	
 
@include list-group-item-variant(success, $state-success-bg, $state-success-text);
 
@include list-group-item-variant(info, $state-info-bg, $state-info-text);
 
@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
 
@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
 

	
 

	
 
// Custom content options
 
//
 
// Extra classes for creating well-formatted content within `.list-group-item`s.
 

	
 
.list-group-item-heading {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
}
 
.list-group-item-text {
 
  margin-bottom: 0;
 
  line-height: 1.3;
 
}
static/bootstrap/stylesheets/bootstrap/_media.scss
Show inline comments
 
new file 100644
 
.media {
 
  // Proper spacing between instances of .media
 
  margin-top: 15px;
 

	
 
  &:first-child {
 
    margin-top: 0;
 
  }
 
}
 

	
 
.media,
 
.media-body {
 
  zoom: 1;
 
  overflow: hidden;
 
}
 

	
 
.media-body {
 
  width: 10000px;
 
}
 

	
 
.media-object {
 
  display: block;
 

	
 
  // Fix collapse in webkit from max-width: 100% and display: table-cell.
 
  &.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;
 
}
 

	
 
// Reset margins on headings for tighter default spacing
 
.media-heading {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
}
 

	
 
// Media list variation
 
//
 
// Undo default ul/ol styles
 
.media-list {
 
  padding-left: 0;
 
  list-style: none;
 
}
static/bootstrap/stylesheets/bootstrap/_mixins.scss
Show inline comments
 
new file 100644
 
// Mixins
 
// --------------------------------------------------
 

	
 
// Utilities
 
@import "mixins/hide-text";
 
@import "mixins/opacity";
 
@import "mixins/image";
 
@import "mixins/labels";
 
@import "mixins/reset-filter";
 
@import "mixins/resize";
 
@import "mixins/responsive-visibility";
 
@import "mixins/size";
 
@import "mixins/tab-focus";
 
@import "mixins/reset-text";
 
@import "mixins/text-emphasis";
 
@import "mixins/text-overflow";
 
@import "mixins/vendor-prefixes";
 

	
 
// Components
 
@import "mixins/alerts";
 
@import "mixins/buttons";
 
@import "mixins/panels";
 
@import "mixins/pagination";
 
@import "mixins/list-group";
 
@import "mixins/nav-divider";
 
@import "mixins/forms";
 
@import "mixins/progress-bar";
 
@import "mixins/table-row";
 

	
 
// Skins
 
@import "mixins/background-variant";
 
@import "mixins/border-radius";
 
@import "mixins/gradients";
 

	
 
// Layout
 
@import "mixins/clearfix";
 
@import "mixins/center-block";
 
@import "mixins/nav-vertical-align";
 
@import "mixins/grid-framework";
 
@import "mixins/grid";
static/bootstrap/stylesheets/bootstrap/_modals.scss
Show inline comments
 
new file 100644
 
//
 
// Modals
 
// --------------------------------------------------
 

	
 
// .modal-open      - body class for killing the scroll
 
// .modal           - container to scroll within
 
// .modal-dialog    - positioning shell for the actual modal
 
// .modal-content   - actual modal w/ bg and corners and shit
 

	
 
// Kill the scroll on the body
 
.modal-open {
 
  overflow: hidden;
 
}
 

	
 
// Container that the modal scrolls within
 
.modal {
 
  display: none;
 
  overflow: hidden;
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: $zindex-modal;
 
  -webkit-overflow-scrolling: touch;
 

	
 
  // Prevent Chrome on Windows from adding a focus outline. For details, see
 
  // https://github.com/twbs/bootstrap/pull/10951.
 
  outline: 0;
 

	
 
  // When fading in the modal, animate it to slide down
 
  &.fade .modal-dialog {
 
    @include translate(0, -25%);
 
    @include transition-transform(0.3s ease-out);
 
  }
 
  &.in .modal-dialog { @include translate(0, 0) }
 
}
 
.modal-open .modal {
 
  overflow-x: hidden;
 
  overflow-y: auto;
 
}
 

	
 
// Shell div to position the modal with bottom padding
 
.modal-dialog {
 
  position: relative;
 
  width: auto;
 
  margin: 10px;
 
}
 

	
 
// Actual modal
 
.modal-content {
 
  position: relative;
 
  background-color: $modal-content-bg;
 
  border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
 
  border: 1px solid $modal-content-border-color;
 
  border-radius: $border-radius-large;
 
  @include box-shadow(0 3px 9px rgba(0,0,0,.5));
 
  background-clip: padding-box;
 
  // Remove focus outline from opened modal
 
  outline: 0;
 
}
 

	
 
// Modal background
 
.modal-backdrop {
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: $zindex-modal-background;
 
  background-color: $modal-backdrop-bg;
 
  // Fade for backdrop
 
  &.fade { @include opacity(0); }
 
  &.in { @include opacity($modal-backdrop-opacity); }
 
}
 

	
 
// Modal header
 
// Top section of the modal w/ title and dismiss
 
.modal-header {
 
  padding: $modal-title-padding;
 
  border-bottom: 1px solid $modal-header-border-color;
 
  @include clearfix;
 
}
 
// Close icon
 
.modal-header .close {
 
  margin-top: -2px;
 
}
 

	
 
// Title text within header
 
.modal-title {
 
  margin: 0;
 
  line-height: $modal-title-line-height;
 
}
 

	
 
// Modal body
 
// Where all modal content resides (sibling of .modal-header and .modal-footer)
 
.modal-body {
 
  position: relative;
 
  padding: $modal-inner-padding;
 
}
 

	
 
// Footer (for actions)
 
.modal-footer {
 
  padding: $modal-inner-padding;
 
  text-align: right; // right align buttons
 
  border-top: 1px solid $modal-footer-border-color;
 
  @include clearfix; // clear it in case folks use .pull-* classes on buttons
 

	
 
  // Properly space out buttons
 
  .btn + .btn {
 
    margin-left: 5px;
 
    margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
 
  }
 
  // but override that for button groups
 
  .btn-group .btn + .btn {
 
    margin-left: -1px;
 
  }
 
  // and override it for block buttons as well
 
  .btn-block + .btn-block {
 
    margin-left: 0;
 
  }
 
}
 

	
 
// Measure scrollbar width for padding body during modal show/hide
 
.modal-scrollbar-measure {
 
  position: absolute;
 
  top: -9999px;
 
  width: 50px;
 
  height: 50px;
 
  overflow: scroll;
 
}
 

	
 
// Scale up the modal
 
@media (min-width: $screen-sm-min) {
 
  // Automatically set modal's width for larger viewports
 
  .modal-dialog {
 
    width: $modal-md;
 
    margin: 30px auto;
 
  }
 
  .modal-content {
 
    @include box-shadow(0 5px 15px rgba(0,0,0,.5));
 
  }
 

	
 
  // Modal sizes
 
  .modal-sm { width: $modal-sm; }
 
}
 

	
 
@media (min-width: $screen-md-min) {
 
  .modal-lg { width: $modal-lg; }
 
}
static/bootstrap/stylesheets/bootstrap/_navbar.scss
Show inline comments
 
new file 100644
 
//
 
// Navbars
 
// --------------------------------------------------
 

	
 

	
 
// Wrapper and base class
 
//
 
// Provide a static navbar from which we expand to create full-width, fixed, and
 
// other navbar variations.
 

	
 
.navbar {
 
  position: relative;
 
  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
 
  margin-bottom: $navbar-margin-bottom;
 
  border: 1px solid transparent;
 

	
 
  // Prevent floats from breaking the navbar
 
  @include clearfix;
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    border-radius: $navbar-border-radius;
 
  }
 
}
 

	
 

	
 
// Navbar heading
 
//
 
// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
 
// styling of responsive aspects.
 

	
 
.navbar-header {
 
  @include clearfix;
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    float: left;
 
  }
 
}
 

	
 

	
 
// Navbar collapse (body)
 
//
 
// Group your navbar content into this for easy collapsing and expanding across
 
// various device sizes. By default, this content is collapsed when <768px, but
 
// will expand past that for a horizontal display.
 
//
 
// To start (on mobile devices) the navbar links, forms, and buttons are stacked
 
// vertically and include a `max-height` to overflow in case you have too much
 
// content for the user's viewport.
 

	
 
.navbar-collapse {
 
  overflow-x: visible;
 
  padding-right: $navbar-padding-horizontal;
 
  padding-left:  $navbar-padding-horizontal;
 
  border-top: 1px solid transparent;
 
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
 
  @include clearfix;
 
  -webkit-overflow-scrolling: touch;
 

	
 
  &.in {
 
    overflow-y: auto;
 
  }
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    width: auto;
 
    border-top: 0;
 
    box-shadow: none;
 

	
 
    &.collapse {
 
      display: block !important;
 
      height: auto !important;
 
      padding-bottom: 0; // Override default setting
 
      overflow: visible !important;
 
    }
 

	
 
    &.in {
 
      overflow-y: visible;
 
    }
 

	
 
    // Undo the collapse side padding for navbars with containers to ensure
 
    // alignment of right-aligned contents.
 
    .navbar-fixed-top &,
 
    .navbar-static-top &,
 
    .navbar-fixed-bottom & {
 
      padding-left: 0;
 
      padding-right: 0;
 
    }
 
  }
 
}
 

	
 
.navbar-fixed-top,
 
.navbar-fixed-bottom {
 
  .navbar-collapse {
 
    max-height: $navbar-collapse-max-height;
 

	
 
    @media (max-device-width: $screen-xs-min) and (orientation: landscape) {
 
      max-height: 200px;
 
    }
 
  }
 
}
 

	
 

	
 
// Both navbar header and collapse
 
//
 
// When a container is present, change the behavior of the header and collapse.
 

	
 
.container,
 
.container-fluid {
 
  > .navbar-header,
 
  > .navbar-collapse {
 
    margin-right: -$navbar-padding-horizontal;
 
    margin-left:  -$navbar-padding-horizontal;
 

	
 
    @media (min-width: $grid-float-breakpoint) {
 
      margin-right: 0;
 
      margin-left:  0;
 
    }
 
  }
 
}
 

	
 

	
 
//
 
// Navbar alignment options
 
//
 
// Display the navbar across the entirety of the page or fixed it to the top or
 
// bottom of the page.
 

	
 
// Static top (unfixed, but 100% wide) navbar
 
.navbar-static-top {
 
  z-index: $zindex-navbar;
 
  border-width: 0 0 1px;
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    border-radius: 0;
 
  }
 
}
 

	
 
// Fix the top/bottom navbars when screen real estate supports it
 
.navbar-fixed-top,
 
.navbar-fixed-bottom {
 
  position: fixed;
 
  right: 0;
 
  left: 0;
 
  z-index: $zindex-navbar-fixed;
 

	
 
  // Undo the rounded corners
 
  @media (min-width: $grid-float-breakpoint) {
 
    border-radius: 0;
 
  }
 
}
 
.navbar-fixed-top {
 
  top: 0;
 
  border-width: 0 0 1px;
 
}
 
.navbar-fixed-bottom {
 
  bottom: 0;
 
  margin-bottom: 0; // override .navbar defaults
 
  border-width: 1px 0 0;
 
}
 

	
 

	
 
// Brand/project name
 

	
 
.navbar-brand {
 
  float: left;
 
  padding: $navbar-padding-vertical $navbar-padding-horizontal;
 
  font-size: $font-size-large;
 
  line-height: $line-height-computed;
 
  height: $navbar-height;
 

	
 
  &:hover,
 
  &:focus {
 
    text-decoration: none;
 
  }
 

	
 
  > img {
 
    display: block;
 
  }
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    .navbar > .container &,
 
    .navbar > .container-fluid & {
 
      margin-left: -$navbar-padding-horizontal;
 
    }
 
  }
 
}
 

	
 

	
 
// Navbar toggle
 
//
 
// Custom button for toggling the `.navbar-collapse`, powered by the collapse
 
// JavaScript plugin.
 

	
 
.navbar-toggle {
 
  position: relative;
 
  float: right;
 
  margin-right: $navbar-padding-horizontal;
 
  padding: 9px 10px;
 
  @include navbar-vertical-align(34px);
 
  background-color: transparent;
 
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
 
  border: 1px solid transparent;
 
  border-radius: $border-radius-base;
 

	
 
  // We remove the `outline` here, but later compensate by attaching `:hover`
 
  // styles to `:focus`.
 
  &:focus {
 
    outline: 0;
 
  }
 

	
 
  // Bars
 
  .icon-bar {
 
    display: block;
 
    width: 22px;
 
    height: 2px;
 
    border-radius: 1px;
 
  }
 
  .icon-bar + .icon-bar {
 
    margin-top: 4px;
 
  }
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    display: none;
 
  }
 
}
 

	
 

	
 
// Navbar nav links
 
//
 
// Builds on top of the `.nav` components with its own modifier class to make
 
// the nav the full height of the horizontal nav (above 768px).
 

	
 
.navbar-nav {
 
  margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
 

	
 
  > li > a {
 
    padding-top:    10px;
 
    padding-bottom: 10px;
 
    line-height: $line-height-computed;
 
  }
 

	
 
  @media (max-width: $grid-float-breakpoint-max) {
 
    // Dropdowns get custom display when collapsed
 
    .open .dropdown-menu {
 
      position: static;
 
      float: none;
 
      width: auto;
 
      margin-top: 0;
 
      background-color: transparent;
 
      border: 0;
 
      box-shadow: none;
 
      > li > a,
 
      .dropdown-header {
 
        padding: 5px 15px 5px 25px;
 
      }
 
      > li > a {
 
        line-height: $line-height-computed;
 
        &:hover,
 
        &:focus {
 
          background-image: none;
 
        }
 
      }
 
    }
 
  }
 

	
 
  // Uncollapse the nav
 
  @media (min-width: $grid-float-breakpoint) {
 
    float: left;
 
    margin: 0;
 

	
 
    > li {
 
      float: left;
 
      > a {
 
        padding-top:    $navbar-padding-vertical;
 
        padding-bottom: $navbar-padding-vertical;
 
      }
 
    }
 
  }
 
}
 

	
 

	
 
// Navbar form
 
//
 
// Extension of the `.form-inline` with some extra flavor for optimum display in
 
// our navbars.
 

	
 
.navbar-form {
 
  margin-left: -$navbar-padding-horizontal;
 
  margin-right: -$navbar-padding-horizontal;
 
  padding: 10px $navbar-padding-horizontal;
 
  border-top: 1px solid transparent;
 
  border-bottom: 1px solid transparent;
 
  $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
 
  @include box-shadow($shadow);
 

	
 
  // Mixin behavior for optimum display
 
  @include form-inline;
 

	
 
  .form-group {
 
    @media (max-width: $grid-float-breakpoint-max) {
 
      margin-bottom: 5px;
 

	
 
      &:last-child {
 
        margin-bottom: 0;
 
      }
 
    }
 
  }
 

	
 
  // Vertically center in expanded, horizontal navbar
 
  @include navbar-vertical-align($input-height-base);
 

	
 
  // Undo 100% width for pull classes
 
  @media (min-width: $grid-float-breakpoint) {
 
    width: auto;
 
    border: 0;
 
    margin-left: 0;
 
    margin-right: 0;
 
    padding-top: 0;
 
    padding-bottom: 0;
 
    @include box-shadow(none);
 
  }
 
}
 

	
 

	
 
// Dropdown menus
 

	
 
// Menu position and menu carets
 
.navbar-nav > li > .dropdown-menu {
 
  margin-top: 0;
 
  @include border-top-radius(0);
 
}
 
// Menu position and menu caret support for dropups via extra dropup class
 
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
 
  margin-bottom: 0;
 
  @include border-top-radius($navbar-border-radius);
 
  @include border-bottom-radius(0);
 
}
 

	
 

	
 
// Buttons in navbars
 
//
 
// Vertically center a button within a navbar (when *not* in a form).
 

	
 
.navbar-btn {
 
  @include navbar-vertical-align($input-height-base);
 

	
 
  &.btn-sm {
 
    @include navbar-vertical-align($input-height-small);
 
  }
 
  &.btn-xs {
 
    @include navbar-vertical-align(22);
 
  }
 
}
 

	
 

	
 
// Text in navbars
 
//
 
// Add a class to make any element properly align itself vertically within the navbars.
 

	
 
.navbar-text {
 
  @include navbar-vertical-align($line-height-computed);
 

	
 
  @media (min-width: $grid-float-breakpoint) {
 
    float: left;
 
    margin-left: $navbar-padding-horizontal;
 
    margin-right: $navbar-padding-horizontal;
 
  }
 
}
 

	
 

	
 
// Component alignment
 
//
 
// Repurpose the pull utilities as their own navbar utilities to avoid specificity
 
// issues with parents and chaining. Only do this when the navbar is uncollapsed
 
// though so that navbar contents properly stack and align in mobile.
 
//
 
// Declared after the navbar components to ensure more specificity on the margins.
 

	
 
@media (min-width: $grid-float-breakpoint) {
 
  .navbar-left {
 
    float: left !important;
 
  }
 
  .navbar-right {
 
    float: right !important;
 
  margin-right: -$navbar-padding-horizontal;
 

	
 
    ~ .navbar-right {
 
      margin-right: 0;
 
    }
 
  }
 
}
 

	
 

	
 
// Alternate navbars
 
// --------------------------------------------------
 

	
 
// Default navbar
 
.navbar-default {
 
  background-color: $navbar-default-bg;
 
  border-color: $navbar-default-border;
 

	
 
  .navbar-brand {
 
    color: $navbar-default-brand-color;
 
    &:hover,
 
    &:focus {
 
      color: $navbar-default-brand-hover-color;
 
      background-color: $navbar-default-brand-hover-bg;
 
    }
 
  }
 

	
 
  .navbar-text {
 
    color: $navbar-default-color;
 
  }
 

	
 
  .navbar-nav {
 
    > li > a {
 
      color: $navbar-default-link-color;
 

	
 
      &:hover,
 
      &:focus {
 
        color: $navbar-default-link-hover-color;
 
        background-color: $navbar-default-link-hover-bg;
 
      }
 
    }
 
    > .active > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        color: $navbar-default-link-active-color;
 
        background-color: $navbar-default-link-active-bg;
 
      }
 
    }
 
    > .disabled > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        color: $navbar-default-link-disabled-color;
 
        background-color: $navbar-default-link-disabled-bg;
 
      }
 
    }
 
  }
 

	
 
  .navbar-toggle {
 
    border-color: $navbar-default-toggle-border-color;
 
    &:hover,
 
    &:focus {
 
      background-color: $navbar-default-toggle-hover-bg;
 
    }
 
    .icon-bar {
 
      background-color: $navbar-default-toggle-icon-bar-bg;
 
    }
 
  }
 

	
 
  .navbar-collapse,
 
  .navbar-form {
 
    border-color: $navbar-default-border;
 
  }
 

	
 
  // Dropdown menu items
 
  .navbar-nav {
 
    // Remove background color from open dropdown
 
    > .open > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        background-color: $navbar-default-link-active-bg;
 
        color: $navbar-default-link-active-color;
 
      }
 
    }
 

	
 
    @media (max-width: $grid-float-breakpoint-max) {
 
      // Dropdowns get custom display when collapsed
 
      .open .dropdown-menu {
 
        > li > a {
 
          color: $navbar-default-link-color;
 
          &:hover,
 
          &:focus {
 
            color: $navbar-default-link-hover-color;
 
            background-color: $navbar-default-link-hover-bg;
 
          }
 
        }
 
        > .active > a {
 
          &,
 
          &:hover,
 
          &:focus {
 
            color: $navbar-default-link-active-color;
 
            background-color: $navbar-default-link-active-bg;
 
          }
 
        }
 
        > .disabled > a {
 
          &,
 
          &:hover,
 
          &:focus {
 
            color: $navbar-default-link-disabled-color;
 
            background-color: $navbar-default-link-disabled-bg;
 
          }
 
        }
 
      }
 
    }
 
  }
 

	
 

	
 
  // Links in navbars
 
  //
 
  // Add a class to ensure links outside the navbar nav are colored correctly.
 

	
 
  .navbar-link {
 
    color: $navbar-default-link-color;
 
    &:hover {
 
      color: $navbar-default-link-hover-color;
 
    }
 
  }
 

	
 
  .btn-link {
 
    color: $navbar-default-link-color;
 
    &:hover,
 
    &:focus {
 
      color: $navbar-default-link-hover-color;
 
    }
 
    &[disabled],
 
    fieldset[disabled] & {
 
      &:hover,
 
      &:focus {
 
        color: $navbar-default-link-disabled-color;
 
      }
 
    }
 
  }
 
}
 

	
 
// Inverse navbar
 

	
 
.navbar-inverse {
 
  background-color: $navbar-inverse-bg;
 
  border-color: $navbar-inverse-border;
 

	
 
  .navbar-brand {
 
    color: $navbar-inverse-brand-color;
 
    &:hover,
 
    &:focus {
 
      color: $navbar-inverse-brand-hover-color;
 
      background-color: $navbar-inverse-brand-hover-bg;
 
    }
 
  }
 

	
 
  .navbar-text {
 
    color: $navbar-inverse-color;
 
  }
 

	
 
  .navbar-nav {
 
    > li > a {
 
      color: $navbar-inverse-link-color;
 

	
 
      &:hover,
 
      &:focus {
 
        color: $navbar-inverse-link-hover-color;
 
        background-color: $navbar-inverse-link-hover-bg;
 
      }
 
    }
 
    > .active > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        color: $navbar-inverse-link-active-color;
 
        background-color: $navbar-inverse-link-active-bg;
 
      }
 
    }
 
    > .disabled > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        color: $navbar-inverse-link-disabled-color;
 
        background-color: $navbar-inverse-link-disabled-bg;
 
      }
 
    }
 
  }
 

	
 
  // Darken the responsive nav toggle
 
  .navbar-toggle {
 
    border-color: $navbar-inverse-toggle-border-color;
 
    &:hover,
 
    &:focus {
 
      background-color: $navbar-inverse-toggle-hover-bg;
 
    }
 
    .icon-bar {
 
      background-color: $navbar-inverse-toggle-icon-bar-bg;
 
    }
 
  }
 

	
 
  .navbar-collapse,
 
  .navbar-form {
 
    border-color: darken($navbar-inverse-bg, 7%);
 
  }
 

	
 
  // Dropdowns
 
  .navbar-nav {
 
    > .open > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        background-color: $navbar-inverse-link-active-bg;
 
        color: $navbar-inverse-link-active-color;
 
      }
 
    }
 

	
 
    @media (max-width: $grid-float-breakpoint-max) {
 
      // Dropdowns get custom display
 
      .open .dropdown-menu {
 
        > .dropdown-header {
 
          border-color: $navbar-inverse-border;
 
        }
 
        .divider {
 
          background-color: $navbar-inverse-border;
 
        }
 
        > li > a {
 
          color: $navbar-inverse-link-color;
 
          &:hover,
 
          &:focus {
 
            color: $navbar-inverse-link-hover-color;
 
            background-color: $navbar-inverse-link-hover-bg;
 
          }
 
        }
 
        > .active > a {
 
          &,
 
          &:hover,
 
          &:focus {
 
            color: $navbar-inverse-link-active-color;
 
            background-color: $navbar-inverse-link-active-bg;
 
          }
 
        }
 
        > .disabled > a {
 
          &,
 
          &:hover,
 
          &:focus {
 
            color: $navbar-inverse-link-disabled-color;
 
            background-color: $navbar-inverse-link-disabled-bg;
 
          }
 
        }
 
      }
 
    }
 
  }
 

	
 
  .navbar-link {
 
    color: $navbar-inverse-link-color;
 
    &:hover {
 
      color: $navbar-inverse-link-hover-color;
 
    }
 
  }
 

	
 
  .btn-link {
 
    color: $navbar-inverse-link-color;
 
    &:hover,
 
    &:focus {
 
      color: $navbar-inverse-link-hover-color;
 
    }
 
    &[disabled],
 
    fieldset[disabled] & {
 
      &:hover,
 
      &:focus {
 
        color: $navbar-inverse-link-disabled-color;
 
      }
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_navs.scss
Show inline comments
 
new file 100644
 
//
 
// Navs
 
// --------------------------------------------------
 

	
 

	
 
// Base class
 
// --------------------------------------------------
 

	
 
.nav {
 
  margin-bottom: 0;
 
  padding-left: 0; // Override default ul/ol
 
  list-style: none;
 
  @include clearfix;
 

	
 
  > li {
 
    position: relative;
 
    display: block;
 

	
 
    > a {
 
      position: relative;
 
      display: block;
 
      padding: $nav-link-padding;
 
      &:hover,
 
      &:focus {
 
        text-decoration: none;
 
        background-color: $nav-link-hover-bg;
 
      }
 
    }
 

	
 
    // Disabled state sets text to gray and nukes hover/tab effects
 
    &.disabled > a {
 
      color: $nav-disabled-link-color;
 

	
 
      &:hover,
 
      &:focus {
 
        color: $nav-disabled-link-hover-color;
 
        text-decoration: none;
 
        background-color: transparent;
 
        cursor: $cursor-disabled;
 
      }
 
    }
 
  }
 

	
 
  // Open dropdowns
 
  .open > a {
 
    &,
 
    &:hover,
 
    &:focus {
 
      background-color: $nav-link-hover-bg;
 
      border-color: $link-color;
 
    }
 
  }
 

	
 
  // Nav dividers (deprecated with v3.0.1)
 
  //
 
  // This should have been removed in v3 with the dropping of `.nav-list`, but
 
  // we missed it. We don't currently support this anywhere, but in the interest
 
  // of maintaining backward compatibility in case you use it, it's deprecated.
 
  .nav-divider {
 
    @include nav-divider;
 
  }
 

	
 
  // Prevent IE8 from misplacing imgs
 
  //
 
  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
 
  > li > a > img {
 
    max-width: none;
 
  }
 
}
 

	
 

	
 
// Tabs
 
// -------------------------
 

	
 
// Give the tabs something to sit on
 
.nav-tabs {
 
  border-bottom: 1px solid $nav-tabs-border-color;
 
  > li {
 
    float: left;
 
    // Make the list-items overlay the bottom border
 
    margin-bottom: -1px;
 

	
 
    // Actual tabs (as links)
 
    > a {
 
      margin-right: 2px;
 
      line-height: $line-height-base;
 
      border: 1px solid transparent;
 
      border-radius: $border-radius-base $border-radius-base 0 0;
 
      &:hover {
 
        border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
 
      }
 
    }
 

	
 
    // Active state, and its :hover to override normal :hover
 
    &.active > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        color: $nav-tabs-active-link-hover-color;
 
        background-color: $nav-tabs-active-link-hover-bg;
 
        border: 1px solid $nav-tabs-active-link-hover-border-color;
 
        border-bottom-color: transparent;
 
        cursor: default;
 
      }
 
    }
 
  }
 
  // pulling this in mainly for less shorthand
 
  &.nav-justified {
 
    @extend .nav-justified;
 
    @extend .nav-tabs-justified;
 
  }
 
}
 

	
 

	
 
// Pills
 
// -------------------------
 
.nav-pills {
 
  > li {
 
    float: left;
 

	
 
    // Links rendered as pills
 
    > a {
 
      border-radius: $nav-pills-border-radius;
 
    }
 
    + li {
 
      margin-left: 2px;
 
    }
 

	
 
    // Active state
 
    &.active > a {
 
      &,
 
      &:hover,
 
      &:focus {
 
        color: $nav-pills-active-link-hover-color;
 
        background-color: $nav-pills-active-link-hover-bg;
 
      }
 
    }
 
  }
 
}
 

	
 

	
 
// Stacked pills
 
.nav-stacked {
 
  > li {
 
    float: none;
 
    + li {
 
      margin-top: 2px;
 
      margin-left: 0; // no need for this gap between nav items
 
    }
 
  }
 
}
 

	
 

	
 
// Nav variations
 
// --------------------------------------------------
 

	
 
// Justified nav links
 
// -------------------------
 

	
 
.nav-justified {
 
  width: 100%;
 

	
 
  > li {
 
    float: none;
 
    > a {
 
      text-align: center;
 
      margin-bottom: 5px;
 
    }
 
  }
 

	
 
  > .dropdown .dropdown-menu {
 
    top: auto;
 
    left: auto;
 
  }
 

	
 
  @media (min-width: $screen-sm-min) {
 
    > li {
 
      display: table-cell;
 
      width: 1%;
 
      > a {
 
        margin-bottom: 0;
 
      }
 
    }
 
  }
 
}
 

	
 
// Move borders to anchors instead of bottom of list
 
//
 
// Mixin for adding on top the shared `.nav-justified` styles for our tabs
 
.nav-tabs-justified {
 
  border-bottom: 0;
 

	
 
  > li > a {
 
    // Override margin from .nav-tabs
 
    margin-right: 0;
 
    border-radius: $border-radius-base;
 
  }
 

	
 
  > .active > a,
 
  > .active > a:hover,
 
  > .active > a:focus {
 
    border: 1px solid $nav-tabs-justified-link-border-color;
 
  }
 

	
 
  @media (min-width: $screen-sm-min) {
 
    > li > a {
 
      border-bottom: 1px solid $nav-tabs-justified-link-border-color;
 
      border-radius: $border-radius-base $border-radius-base 0 0;
 
    }
 
    > .active > a,
 
    > .active > a:hover,
 
    > .active > a:focus {
 
      border-bottom-color: $nav-tabs-justified-active-link-border-color;
 
    }
 
  }
 
}
 

	
 

	
 
// Tabbable tabs
 
// -------------------------
 

	
 
// Hide tabbable panes to start, show them when `.active`
 
.tab-content {
 
  > .tab-pane {
 
    display: none;
 
  }
 
  > .active {
 
    display: block;
 
  }
 
}
 

	
 

	
 
// Dropdowns
 
// -------------------------
 

	
 
// Specific dropdowns
 
.nav-tabs .dropdown-menu {
 
  // make dropdown border overlap tab border
 
  margin-top: -1px;
 
  // Remove the top rounded corners here since there is a hard edge above the menu
 
  @include border-top-radius(0);
 
}
static/bootstrap/stylesheets/bootstrap/_normalize.scss
Show inline comments
 
new file 100644
 
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 

	
 
//
 
// 1. Set default font family to sans-serif.
 
// 2. Prevent iOS and IE text size adjust after device orientation change,
 
//    without disabling user zoom.
 
//
 

	
 
html {
 
  font-family: sans-serif; // 1
 
  -ms-text-size-adjust: 100%; // 2
 
  -webkit-text-size-adjust: 100%; // 2
 
}
 

	
 
//
 
// Remove default margin.
 
//
 

	
 
body {
 
  margin: 0;
 
}
 

	
 
// HTML5 display definitions
 
// ==========================================================================
 

	
 
//
 
// Correct `block` display not defined for any HTML5 element in IE 8/9.
 
// Correct `block` display not defined for `details` or `summary` in IE 10/11
 
// and Firefox.
 
// Correct `block` display not defined for `main` in IE 11.
 
//
 

	
 
article,
 
aside,
 
details,
 
figcaption,
 
figure,
 
footer,
 
header,
 
hgroup,
 
main,
 
menu,
 
nav,
 
section,
 
summary {
 
  display: block;
 
}
 

	
 
//
 
// 1. Correct `inline-block` display not defined in IE 8/9.
 
// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 
//
 

	
 
audio,
 
canvas,
 
progress,
 
video {
 
  display: inline-block; // 1
 
  vertical-align: baseline; // 2
 
}
 

	
 
//
 
// Prevent modern browsers from displaying `audio` without controls.
 
// Remove excess height in iOS 5 devices.
 
//
 

	
 
audio:not([controls]) {
 
  display: none;
 
  height: 0;
 
}
 

	
 
//
 
// Address `[hidden]` styling not present in IE 8/9/10.
 
// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 
//
 

	
 
[hidden],
 
template {
 
  display: none;
 
}
 

	
 
// Links
 
// ==========================================================================
 

	
 
//
 
// Remove the gray background color from active links in IE 10.
 
//
 

	
 
a {
 
  background-color: transparent;
 
}
 

	
 
//
 
// Improve readability of focused elements when they are also in an
 
// active/hover state.
 
//
 

	
 
a:active,
 
a:hover {
 
  outline: 0;
 
}
 

	
 
// Text-level semantics
 
// ==========================================================================
 

	
 
//
 
// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 
//
 

	
 
abbr[title] {
 
  border-bottom: 1px dotted;
 
}
 

	
 
//
 
// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 
//
 

	
 
b,
 
strong {
 
  font-weight: bold;
 
}
 

	
 
//
 
// Address styling not present in Safari and Chrome.
 
//
 

	
 
dfn {
 
  font-style: italic;
 
}
 

	
 
//
 
// Address variable `h1` font-size and margin within `section` and `article`
 
// contexts in Firefox 4+, Safari, and Chrome.
 
//
 

	
 
h1 {
 
  font-size: 2em;
 
  margin: 0.67em 0;
 
}
 

	
 
//
 
// Address styling not present in IE 8/9.
 
//
 

	
 
mark {
 
  background: #ff0;
 
  color: #000;
 
}
 

	
 
//
 
// Address inconsistent and variable font size in all browsers.
 
//
 

	
 
small {
 
  font-size: 80%;
 
}
 

	
 
//
 
// Prevent `sub` and `sup` affecting `line-height` in all browsers.
 
//
 

	
 
sub,
 
sup {
 
  font-size: 75%;
 
  line-height: 0;
 
  position: relative;
 
  vertical-align: baseline;
 
}
 

	
 
sup {
 
  top: -0.5em;
 
}
 

	
 
sub {
 
  bottom: -0.25em;
 
}
 

	
 
// Embedded content
 
// ==========================================================================
 

	
 
//
 
// Remove border when inside `a` element in IE 8/9/10.
 
//
 

	
 
img {
 
  border: 0;
 
}
 

	
 
//
 
// Correct overflow not hidden in IE 9/10/11.
 
//
 

	
 
svg:not(:root) {
 
  overflow: hidden;
 
}
 

	
 
// Grouping content
 
// ==========================================================================
 

	
 
//
 
// Address margin not present in IE 8/9 and Safari.
 
//
 

	
 
figure {
 
  margin: 1em 40px;
 
}
 

	
 
//
 
// Address differences between Firefox and other browsers.
 
//
 

	
 
hr {
 
  box-sizing: content-box;
 
  height: 0;
 
}
 

	
 
//
 
// Contain overflow in all browsers.
 
//
 

	
 
pre {
 
  overflow: auto;
 
}
 

	
 
//
 
// Address odd `em`-unit font size rendering in all browsers.
 
//
 

	
 
code,
 
kbd,
 
pre,
 
samp {
 
  font-family: monospace, monospace;
 
  font-size: 1em;
 
}
 

	
 
// Forms
 
// ==========================================================================
 

	
 
//
 
// Known limitation: by default, Chrome and Safari on OS X allow very limited
 
// styling of `select`, unless a `border` property is set.
 
//
 

	
 
//
 
// 1. Correct color not being inherited.
 
//    Known issue: affects color of disabled elements.
 
// 2. Correct font properties not being inherited.
 
// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 
//
 

	
 
button,
 
input,
 
optgroup,
 
select,
 
textarea {
 
  color: inherit; // 1
 
  font: inherit; // 2
 
  margin: 0; // 3
 
}
 

	
 
//
 
// Address `overflow` set to `hidden` in IE 8/9/10/11.
 
//
 

	
 
button {
 
  overflow: visible;
 
}
 

	
 
//
 
// Address inconsistent `text-transform` inheritance for `button` and `select`.
 
// All other form control elements do not inherit `text-transform` values.
 
// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 
// Correct `select` style inheritance in Firefox.
 
//
 

	
 
button,
 
select {
 
  text-transform: none;
 
}
 

	
 
//
 
// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 
//    and `video` controls.
 
// 2. Correct inability to style clickable `input` types in iOS.
 
// 3. Improve usability and consistency of cursor style between image-type
 
//    `input` and others.
 
//
 

	
 
button,
 
html input[type="button"], // 1
 
input[type="reset"],
 
input[type="submit"] {
 
  -webkit-appearance: button; // 2
 
  cursor: pointer; // 3
 
}
 

	
 
//
 
// Re-set default cursor for disabled elements.
 
//
 

	
 
button[disabled],
 
html input[disabled] {
 
  cursor: default;
 
}
 

	
 
//
 
// Remove inner padding and border in Firefox 4+.
 
//
 

	
 
button::-moz-focus-inner,
 
input::-moz-focus-inner {
 
  border: 0;
 
  padding: 0;
 
}
 

	
 
//
 
// Address Firefox 4+ setting `line-height` on `input` using `!important` in
 
// the UA stylesheet.
 
//
 

	
 
input {
 
  line-height: normal;
 
}
 

	
 
//
 
// It's recommended that you don't attempt to style these elements.
 
// Firefox's implementation doesn't respect box-sizing, padding, or width.
 
//
 
// 1. Address box sizing set to `content-box` in IE 8/9/10.
 
// 2. Remove excess padding in IE 8/9/10.
 
//
 

	
 
input[type="checkbox"],
 
input[type="radio"] {
 
  box-sizing: border-box; // 1
 
  padding: 0; // 2
 
}
 

	
 
//
 
// Fix the cursor style for Chrome's increment/decrement buttons. For certain
 
// `font-size` values of the `input`, it causes the cursor style of the
 
// decrement button to change from `default` to `text`.
 
//
 

	
 
input[type="number"]::-webkit-inner-spin-button,
 
input[type="number"]::-webkit-outer-spin-button {
 
  height: auto;
 
}
 

	
 
//
 
// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 
//
 

	
 
input[type="search"] {
 
  -webkit-appearance: textfield; // 1
 
  box-sizing: content-box; //2
 
}
 

	
 
//
 
// Remove inner padding and search cancel button in Safari and Chrome on OS X.
 
// Safari (but not Chrome) clips the cancel button when the search input has
 
// padding (and `textfield` appearance).
 
//
 

	
 
input[type="search"]::-webkit-search-cancel-button,
 
input[type="search"]::-webkit-search-decoration {
 
  -webkit-appearance: none;
 
}
 

	
 
//
 
// Define consistent border, margin, and padding.
 
//
 

	
 
fieldset {
 
  border: 1px solid #c0c0c0;
 
  margin: 0 2px;
 
  padding: 0.35em 0.625em 0.75em;
 
}
 

	
 
//
 
// 1. Correct `color` not being inherited in IE 8/9/10/11.
 
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
 
//
 

	
 
legend {
 
  border: 0; // 1
 
  padding: 0; // 2
 
}
 

	
 
//
 
// Remove default vertical scrollbar in IE 8/9/10/11.
 
//
 

	
 
textarea {
 
  overflow: auto;
 
}
 

	
 
//
 
// Don't inherit the `font-weight` (applied by a rule above).
 
// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 
//
 

	
 
optgroup {
 
  font-weight: bold;
 
}
 

	
 
// Tables
 
// ==========================================================================
 

	
 
//
 
// Remove most spacing between table cells.
 
//
 

	
 
table {
 
  border-collapse: collapse;
 
  border-spacing: 0;
 
}
 

	
 
td,
 
th {
 
  padding: 0;
 
}
static/bootstrap/stylesheets/bootstrap/_pager.scss
Show inline comments
 
new file 100644
 
//
 
// Pager pagination
 
// --------------------------------------------------
 

	
 

	
 
.pager {
 
  padding-left: 0;
 
  margin: $line-height-computed 0;
 
  list-style: none;
 
  text-align: center;
 
  @include clearfix;
 
  li {
 
    display: inline;
 
    > a,
 
    > span {
 
      display: inline-block;
 
      padding: 5px 14px;
 
      background-color: $pager-bg;
 
      border: 1px solid $pager-border;
 
      border-radius: $pager-border-radius;
 
    }
 

	
 
    > a:hover,
 
    > a:focus {
 
      text-decoration: none;
 
      background-color: $pager-hover-bg;
 
    }
 
  }
 

	
 
  .next {
 
    > a,
 
    > span {
 
      float: right;
 
    }
 
  }
 

	
 
  .previous {
 
    > a,
 
    > span {
 
      float: left;
 
    }
 
  }
 

	
 
  .disabled {
 
    > a,
 
    > a:hover,
 
    > a:focus,
 
    > span {
 
      color: $pager-disabled-color;
 
      background-color: $pager-bg;
 
      cursor: $cursor-disabled;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_pagination.scss
Show inline comments
 
new file 100644
 
//
 
// Pagination (multiple pages)
 
// --------------------------------------------------
 
.pagination {
 
  display: inline-block;
 
  padding-left: 0;
 
  margin: $line-height-computed 0;
 
  border-radius: $border-radius-base;
 

	
 
  > li {
 
    display: inline; // Remove list-style and block-level defaults
 
    > a,
 
    > span {
 
      position: relative;
 
      float: left; // Collapse white-space
 
      padding: $padding-base-vertical $padding-base-horizontal;
 
      line-height: $line-height-base;
 
      text-decoration: none;
 
      color: $pagination-color;
 
      background-color: $pagination-bg;
 
      border: 1px solid $pagination-border;
 
      margin-left: -1px;
 
    }
 
    &:first-child {
 
      > a,
 
      > span {
 
        margin-left: 0;
 
        @include border-left-radius($border-radius-base);
 
      }
 
    }
 
    &:last-child {
 
      > a,
 
      > span {
 
        @include border-right-radius($border-radius-base);
 
      }
 
    }
 
  }
 

	
 
  > li > a,
 
  > li > span {
 
    &:hover,
 
    &:focus {
 
      z-index: 2;
 
      color: $pagination-hover-color;
 
      background-color: $pagination-hover-bg;
 
      border-color: $pagination-hover-border;
 
    }
 
  }
 

	
 
  > .active > a,
 
  > .active > span {
 
    &,
 
    &:hover,
 
    &:focus {
 
      z-index: 3;
 
      color: $pagination-active-color;
 
      background-color: $pagination-active-bg;
 
      border-color: $pagination-active-border;
 
      cursor: default;
 
    }
 
  }
 

	
 
  > .disabled {
 
    > span,
 
    > span:hover,
 
    > span:focus,
 
    > a,
 
    > a:hover,
 
    > a:focus {
 
      color: $pagination-disabled-color;
 
      background-color: $pagination-disabled-bg;
 
      border-color: $pagination-disabled-border;
 
      cursor: $cursor-disabled;
 
    }
 
  }
 
}
 

	
 
// Sizing
 
// --------------------------------------------------
 

	
 
// Large
 
.pagination-lg {
 
  @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
 
}
 

	
 
// Small
 
.pagination-sm {
 
  @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
 
}
static/bootstrap/stylesheets/bootstrap/_panels.scss
Show inline comments
 
new file 100644
 
//
 
// Panels
 
// --------------------------------------------------
 

	
 

	
 
// Base class
 
.panel {
 
  margin-bottom: $line-height-computed;
 
  background-color: $panel-bg;
 
  border: 1px solid transparent;
 
  border-radius: $panel-border-radius;
 
  @include box-shadow(0 1px 1px rgba(0,0,0,.05));
 
}
 

	
 
// Panel contents
 
.panel-body {
 
  padding: $panel-body-padding;
 
  @include clearfix;
 
}
 

	
 
// Optional heading
 
.panel-heading {
 
  padding: $panel-heading-padding;
 
  border-bottom: 1px solid transparent;
 
  @include border-top-radius(($panel-border-radius - 1));
 

	
 
  > .dropdown .dropdown-toggle {
 
    color: inherit;
 
  }
 
}
 

	
 
// Within heading, strip any `h*` tag of its default margins for spacing.
 
.panel-title {
 
  margin-top: 0;
 
  margin-bottom: 0;
 
  font-size: ceil(($font-size-base * 1.125));
 
  color: inherit;
 

	
 
  > a,
 
  > small,
 
  > .small,
 
  > small > a,
 
  > .small > a {
 
    color: inherit;
 
  }
 
}
 

	
 
// Optional footer (stays gray in every modifier class)
 
.panel-footer {
 
  padding: $panel-footer-padding;
 
  background-color: $panel-footer-bg;
 
  border-top: 1px solid $panel-inner-border;
 
  @include border-bottom-radius(($panel-border-radius - 1));
 
}
 

	
 

	
 
// List groups in panels
 
//
 
// By default, space out list group content from panel headings to account for
 
// any kind of custom content between the two.
 

	
 
.panel {
 
  > .list-group,
 
  > .panel-collapse > .list-group {
 
    margin-bottom: 0;
 

	
 
    .list-group-item {
 
      border-width: 1px 0;
 
      border-radius: 0;
 
    }
 

	
 
    // Add border top radius for first one
 
    &:first-child {
 
      .list-group-item:first-child {
 
        border-top: 0;
 
        @include border-top-radius(($panel-border-radius - 1));
 
      }
 
    }
 

	
 
    // Add border bottom radius for last one
 
    &:last-child {
 
      .list-group-item:last-child {
 
        border-bottom: 0;
 
        @include border-bottom-radius(($panel-border-radius - 1));
 
      }
 
    }
 
  }
 
  > .panel-heading + .panel-collapse > .list-group {
 
    .list-group-item:first-child {
 
      @include border-top-radius(0);
 
    }
 
  }
 
}
 
// Collapse space between when there's no additional content.
 
.panel-heading + .list-group {
 
  .list-group-item:first-child {
 
    border-top-width: 0;
 
  }
 
}
 
.list-group + .panel-footer {
 
  border-top-width: 0;
 
}
 

	
 
// Tables in panels
 
//
 
// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
 
// watch it go full width.
 

	
 
.panel {
 
  > .table,
 
  > .table-responsive > .table,
 
  > .panel-collapse > .table {
 
    margin-bottom: 0;
 

	
 
    caption {
 
      padding-left: $panel-body-padding;
 
      padding-right: $panel-body-padding;
 
    }
 
  }
 
  // Add border top radius for first one
 
  > .table:first-child,
 
  > .table-responsive:first-child > .table:first-child {
 
    @include border-top-radius(($panel-border-radius - 1));
 

	
 
    > thead:first-child,
 
    > tbody:first-child {
 
      > tr:first-child {
 
        border-top-left-radius: ($panel-border-radius - 1);
 
        border-top-right-radius: ($panel-border-radius - 1);
 

	
 
        td:first-child,
 
        th:first-child {
 
          border-top-left-radius: ($panel-border-radius - 1);
 
        }
 
        td:last-child,
 
        th:last-child {
 
          border-top-right-radius: ($panel-border-radius - 1);
 
        }
 
      }
 
    }
 
  }
 
  // Add border bottom radius for last one
 
  > .table:last-child,
 
  > .table-responsive:last-child > .table:last-child {
 
    @include border-bottom-radius(($panel-border-radius - 1));
 

	
 
    > tbody:last-child,
 
    > tfoot:last-child {
 
      > tr:last-child {
 
        border-bottom-left-radius: ($panel-border-radius - 1);
 
        border-bottom-right-radius: ($panel-border-radius - 1);
 

	
 
        td:first-child,
 
        th:first-child {
 
          border-bottom-left-radius: ($panel-border-radius - 1);
 
        }
 
        td:last-child,
 
        th:last-child {
 
          border-bottom-right-radius: ($panel-border-radius - 1);
 
        }
 
      }
 
    }
 
  }
 
  > .panel-body + .table,
 
  > .panel-body + .table-responsive,
 
  > .table + .panel-body,
 
  > .table-responsive + .panel-body {
 
    border-top: 1px solid $table-border-color;
 
  }
 
  > .table > tbody:first-child > tr:first-child th,
 
  > .table > tbody:first-child > tr:first-child td {
 
    border-top: 0;
 
  }
 
  > .table-bordered,
 
  > .table-responsive > .table-bordered {
 
    border: 0;
 
    > thead,
 
    > tbody,
 
    > tfoot {
 
      > tr {
 
        > th:first-child,
 
        > td:first-child {
 
          border-left: 0;
 
        }
 
        > th:last-child,
 
        > td:last-child {
 
          border-right: 0;
 
        }
 
      }
 
    }
 
    > thead,
 
    > tbody {
 
      > tr:first-child {
 
        > td,
 
        > th {
 
          border-bottom: 0;
 
        }
 
      }
 
    }
 
    > tbody,
 
    > tfoot {
 
      > tr:last-child {
 
        > td,
 
        > th {
 
          border-bottom: 0;
 
        }
 
      }
 
    }
 
  }
 
  > .table-responsive {
 
    border: 0;
 
    margin-bottom: 0;
 
  }
 
}
 

	
 

	
 
// Collapsible panels (aka, accordion)
 
//
 
// Wrap a series of panels in `.panel-group` to turn them into an accordion with
 
// the help of our collapse JavaScript plugin.
 

	
 
.panel-group {
 
  margin-bottom: $line-height-computed;
 

	
 
  // Tighten up margin so it's only between panels
 
  .panel {
 
    margin-bottom: 0;
 
    border-radius: $panel-border-radius;
 

	
 
    + .panel {
 
      margin-top: 5px;
 
    }
 
  }
 

	
 
  .panel-heading {
 
    border-bottom: 0;
 

	
 
    + .panel-collapse > .panel-body,
 
    + .panel-collapse > .list-group {
 
      border-top: 1px solid $panel-inner-border;
 
    }
 
  }
 

	
 
  .panel-footer {
 
    border-top: 0;
 
    + .panel-collapse .panel-body {
 
      border-bottom: 1px solid $panel-inner-border;
 
    }
 
  }
 
}
 

	
 

	
 
// Contextual variations
 
.panel-default {
 
  @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
 
}
 
.panel-primary {
 
  @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
 
}
 
.panel-success {
 
  @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
 
}
 
.panel-info {
 
  @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
 
}
 
.panel-warning {
 
  @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
 
}
 
.panel-danger {
 
  @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
 
}
static/bootstrap/stylesheets/bootstrap/_popovers.scss
Show inline comments
 
new file 100644
 
//
 
// Popovers
 
// --------------------------------------------------
 

	
 

	
 
.popover {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  z-index: $zindex-popover;
 
  display: none;
 
  max-width: $popover-max-width;
 
  padding: 1px;
 
  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
 
  // So reset our font and text properties to avoid inheriting weird values.
 
  @include reset-text;
 
  font-size: $font-size-base;
 

	
 
  background-color: $popover-bg;
 
  background-clip: padding-box;
 
  border: 1px solid $popover-fallback-border-color;
 
  border: 1px solid $popover-border-color;
 
  border-radius: $border-radius-large;
 
  @include box-shadow(0 5px 10px rgba(0,0,0,.2));
 

	
 
  // Offset the popover to account for the popover arrow
 
  &.top     { margin-top: -$popover-arrow-width; }
 
  &.right   { margin-left: $popover-arrow-width; }
 
  &.bottom  { margin-top: $popover-arrow-width; }
 
  &.left    { margin-left: -$popover-arrow-width; }
 
}
 

	
 
.popover-title {
 
  margin: 0; // reset heading margin
 
  padding: 8px 14px;
 
  font-size: $font-size-base;
 
  background-color: $popover-title-bg;
 
  border-bottom: 1px solid darken($popover-title-bg, 5%);
 
  border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0;
 
}
 

	
 
.popover-content {
 
  padding: 9px 14px;
 
}
 

	
 
// Arrows
 
//
 
// .arrow is outer, .arrow:after is inner
 

	
 
.popover > .arrow {
 
  &,
 
  &:after {
 
    position: absolute;
 
    display: block;
 
    width: 0;
 
    height: 0;
 
    border-color: transparent;
 
    border-style: solid;
 
  }
 
}
 
.popover > .arrow {
 
  border-width: $popover-arrow-outer-width;
 
}
 
.popover > .arrow:after {
 
  border-width: $popover-arrow-width;
 
  content: "";
 
}
 

	
 
.popover {
 
  &.top > .arrow {
 
    left: 50%;
 
    margin-left: -$popover-arrow-outer-width;
 
    border-bottom-width: 0;
 
    border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback
 
    border-top-color: $popover-arrow-outer-color;
 
    bottom: -$popover-arrow-outer-width;
 
    &:after {
 
      content: " ";
 
      bottom: 1px;
 
      margin-left: -$popover-arrow-width;
 
      border-bottom-width: 0;
 
      border-top-color: $popover-arrow-color;
 
    }
 
  }
 
  &.right > .arrow {
 
    top: 50%;
 
    left: -$popover-arrow-outer-width;
 
    margin-top: -$popover-arrow-outer-width;
 
    border-left-width: 0;
 
    border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback
 
    border-right-color: $popover-arrow-outer-color;
 
    &:after {
 
      content: " ";
 
      left: 1px;
 
      bottom: -$popover-arrow-width;
 
      border-left-width: 0;
 
      border-right-color: $popover-arrow-color;
 
    }
 
  }
 
  &.bottom > .arrow {
 
    left: 50%;
 
    margin-left: -$popover-arrow-outer-width;
 
    border-top-width: 0;
 
    border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback
 
    border-bottom-color: $popover-arrow-outer-color;
 
    top: -$popover-arrow-outer-width;
 
    &:after {
 
      content: " ";
 
      top: 1px;
 
      margin-left: -$popover-arrow-width;
 
      border-top-width: 0;
 
      border-bottom-color: $popover-arrow-color;
 
    }
 
  }
 

	
 
  &.left > .arrow {
 
    top: 50%;
 
    right: -$popover-arrow-outer-width;
 
    margin-top: -$popover-arrow-outer-width;
 
    border-right-width: 0;
 
    border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback
 
    border-left-color: $popover-arrow-outer-color;
 
    &:after {
 
      content: " ";
 
      right: 1px;
 
      border-right-width: 0;
 
      border-left-color: $popover-arrow-color;
 
      bottom: -$popover-arrow-width;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_print.scss
Show inline comments
 
new file 100644
 
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 

	
 
// ==========================================================================
 
// Print styles.
 
// Inlined to avoid the additional HTTP request: h5bp.com/r
 
// ==========================================================================
 

	
 
@media print {
 
    *,
 
    *:before,
 
    *:after {
 
        background: transparent !important;
 
        color: #000 !important; // Black prints faster: h5bp.com/s
 
        box-shadow: none !important;
 
        text-shadow: none !important;
 
    }
 

	
 
    a,
 
    a:visited {
 
        text-decoration: underline;
 
    }
 

	
 
    a[href]:after {
 
        content: " (" attr(href) ")";
 
    }
 

	
 
    abbr[title]:after {
 
        content: " (" attr(title) ")";
 
    }
 

	
 
    // Don't show links that are fragment identifiers,
 
    // or use the `javascript:` pseudo protocol
 
    a[href^="#"]:after,
 
    a[href^="javascript:"]:after {
 
        content: "";
 
    }
 

	
 
    pre,
 
    blockquote {
 
        border: 1px solid #999;
 
        page-break-inside: avoid;
 
    }
 

	
 
    thead {
 
        display: table-header-group; // h5bp.com/t
 
    }
 

	
 
    tr,
 
    img {
 
        page-break-inside: avoid;
 
    }
 

	
 
    img {
 
        max-width: 100% !important;
 
    }
 

	
 
    p,
 
    h2,
 
    h3 {
 
        orphans: 3;
 
        widows: 3;
 
    }
 

	
 
    h2,
 
    h3 {
 
        page-break-after: avoid;
 
    }
 

	
 
    // Bootstrap specific changes start
 

	
 
    // Bootstrap components
 
    .navbar {
 
        display: none;
 
    }
 
    .btn,
 
    .dropup > .btn {
 
        > .caret {
 
            border-top-color: #000 !important;
 
        }
 
    }
 
    .label {
 
        border: 1px solid #000;
 
    }
 

	
 
    .table {
 
        border-collapse: collapse !important;
 

	
 
        td,
 
        th {
 
            background-color: #fff !important;
 
        }
 
    }
 
    .table-bordered {
 
        th,
 
        td {
 
            border: 1px solid #ddd !important;
 
        }
 
    }
 

	
 
    // Bootstrap specific changes end
 
}
static/bootstrap/stylesheets/bootstrap/_progress-bars.scss
Show inline comments
 
new file 100644
 
//
 
// Progress bars
 
// --------------------------------------------------
 

	
 

	
 
// Bar animations
 
// -------------------------
 

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

	
 
// Spec and IE10+
 
@keyframes progress-bar-stripes {
 
  from  { background-position: 40px 0; }
 
  to    { background-position: 0 0; }
 
}
 

	
 

	
 
// Bar itself
 
// -------------------------
 

	
 
// Outer container
 
.progress {
 
  overflow: hidden;
 
  height: $line-height-computed;
 
  margin-bottom: $line-height-computed;
 
  background-color: $progress-bg;
 
  border-radius: $progress-border-radius;
 
  @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
 
}
 

	
 
// Bar of progress
 
.progress-bar {
 
  float: left;
 
  width: 0%;
 
  height: 100%;
 
  font-size: $font-size-small;
 
  line-height: $line-height-computed;
 
  color: $progress-bar-color;
 
  text-align: center;
 
  background-color: $progress-bar-bg;
 
  @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
 
  @include transition(width .6s ease);
 
}
 

	
 
// Striped bars
 
//
 
// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
 
// `.progress-bar-striped` class, which you just add to an existing
 
// `.progress-bar`.
 
.progress-striped .progress-bar,
 
.progress-bar-striped {
 
  @include gradient-striped;
 
  background-size: 40px 40px;
 
}
 

	
 
// Call animation for the active one
 
//
 
// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
 
// `.progress-bar.active` approach.
 
.progress.active .progress-bar,
 
.progress-bar.active {
 
  @include animation(progress-bar-stripes 2s linear infinite);
 
}
 

	
 

	
 
// Variations
 
// -------------------------
 

	
 
.progress-bar-success {
 
  @include progress-bar-variant($progress-bar-success-bg);
 
}
 

	
 
.progress-bar-info {
 
  @include progress-bar-variant($progress-bar-info-bg);
 
}
 

	
 
.progress-bar-warning {
 
  @include progress-bar-variant($progress-bar-warning-bg);
 
}
 

	
 
.progress-bar-danger {
 
  @include progress-bar-variant($progress-bar-danger-bg);
 
}
static/bootstrap/stylesheets/bootstrap/_responsive-embed.scss
Show inline comments
 
new file 100644
 
// Embeds responsive
 
//
 
// Credit: Nicolas Gallagher and SUIT CSS.
 

	
 
.embed-responsive {
 
  position: relative;
 
  display: block;
 
  height: 0;
 
  padding: 0;
 
  overflow: hidden;
 

	
 
  .embed-responsive-item,
 
  iframe,
 
  embed,
 
  object,
 
  video {
 
    position: absolute;
 
    top: 0;
 
    left: 0;
 
    bottom: 0;
 
    height: 100%;
 
    width: 100%;
 
    border: 0;
 
  }
 
}
 

	
 
// Modifier class for 16:9 aspect ratio
 
.embed-responsive-16by9 {
 
  padding-bottom: 56.25%;
 
}
 

	
 
// Modifier class for 4:3 aspect ratio
 
.embed-responsive-4by3 {
 
  padding-bottom: 75%;
 
}
static/bootstrap/stylesheets/bootstrap/_responsive-utilities.scss
Show inline comments
 
new file 100644
 
//
 
// Responsive: Utility classes
 
// --------------------------------------------------
 

	
 

	
 
// IE10 in Windows (Phone) 8
 
//
 
// Support for responsive views via media queries is kind of borked in IE10, for
 
// Surface/desktop in split view and for Windows Phone 8. This particular fix
 
// must be accompanied by a snippet of JavaScript to sniff the user agent and
 
// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
 
// our Getting Started page for more information on this bug.
 
//
 
// For more information, see the following:
 
//
 
// Issue: https://github.com/twbs/bootstrap/issues/10497
 
// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
 
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
 
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
 

	
 
@at-root {
 
  @-ms-viewport {
 
    width: device-width;
 
  }
 
}
 

	
 

	
 
// Visibility utilities
 
// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
 

	
 
@include responsive-invisibility('.visible-xs');
 
@include responsive-invisibility('.visible-sm');
 
@include responsive-invisibility('.visible-md');
 
@include responsive-invisibility('.visible-lg');
 

	
 
.visible-xs-block,
 
.visible-xs-inline,
 
.visible-xs-inline-block,
 
.visible-sm-block,
 
.visible-sm-inline,
 
.visible-sm-inline-block,
 
.visible-md-block,
 
.visible-md-inline,
 
.visible-md-inline-block,
 
.visible-lg-block,
 
.visible-lg-inline,
 
.visible-lg-inline-block {
 
  display: none !important;
 
}
 

	
 
@media (max-width: $screen-xs-max) {
 
  @include responsive-visibility('.visible-xs');
 
}
 
.visible-xs-block {
 
  @media (max-width: $screen-xs-max) {
 
    display: block !important;
 
  }
 
}
 
.visible-xs-inline {
 
  @media (max-width: $screen-xs-max) {
 
    display: inline !important;
 
  }
 
}
 
.visible-xs-inline-block {
 
  @media (max-width: $screen-xs-max) {
 
    display: inline-block !important;
 
  }
 
}
 

	
 
@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
 
  @include responsive-visibility('.visible-sm');
 
}
 
.visible-sm-block {
 
  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
 
    display: block !important;
 
  }
 
}
 
.visible-sm-inline {
 
  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
 
    display: inline !important;
 
  }
 
}
 
.visible-sm-inline-block {
 
  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
 
    display: inline-block !important;
 
  }
 
}
 

	
 
@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
 
  @include responsive-visibility('.visible-md');
 
}
 
.visible-md-block {
 
  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
 
    display: block !important;
 
  }
 
}
 
.visible-md-inline {
 
  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
 
    display: inline !important;
 
  }
 
}
 
.visible-md-inline-block {
 
  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
 
    display: inline-block !important;
 
  }
 
}
 

	
 
@media (min-width: $screen-lg-min) {
 
  @include responsive-visibility('.visible-lg');
 
}
 
.visible-lg-block {
 
  @media (min-width: $screen-lg-min) {
 
    display: block !important;
 
  }
 
}
 
.visible-lg-inline {
 
  @media (min-width: $screen-lg-min) {
 
    display: inline !important;
 
  }
 
}
 
.visible-lg-inline-block {
 
  @media (min-width: $screen-lg-min) {
 
    display: inline-block !important;
 
  }
 
}
 

	
 
@media (max-width: $screen-xs-max) {
 
  @include responsive-invisibility('.hidden-xs');
 
}
 

	
 
@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
 
  @include responsive-invisibility('.hidden-sm');
 
}
 

	
 
@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
 
  @include responsive-invisibility('.hidden-md');
 
}
 

	
 
@media (min-width: $screen-lg-min) {
 
  @include responsive-invisibility('.hidden-lg');
 
}
 

	
 

	
 
// Print utilities
 
//
 
// Media queries are placed on the inside to be mixin-friendly.
 

	
 
// Note: Deprecated .visible-print as of v3.2.0
 

	
 
@include responsive-invisibility('.visible-print');
 

	
 
@media print {
 
  @include responsive-visibility('.visible-print');
 
}
 
.visible-print-block {
 
  display: none !important;
 

	
 
  @media print {
 
    display: block !important;
 
  }
 
}
 
.visible-print-inline {
 
  display: none !important;
 

	
 
  @media print {
 
    display: inline !important;
 
  }
 
}
 
.visible-print-inline-block {
 
  display: none !important;
 

	
 
  @media print {
 
    display: inline-block !important;
 
  }
 
}
 

	
 
@media print {
 
  @include responsive-invisibility('.hidden-print');
 
}
static/bootstrap/stylesheets/bootstrap/_scaffolding.scss
Show inline comments
 
new file 100644
 
//
 
// Scaffolding
 
// --------------------------------------------------
 

	
 

	
 
// Reset the box-sizing
 
//
 
// Heads up! This reset may cause conflicts with some third-party widgets.
 
// For recommendations on resolving such conflicts, see
 
// http://getbootstrap.com/getting-started/#third-box-sizing
 
* {
 
  @include box-sizing(border-box);
 
}
 
*:before,
 
*:after {
 
  @include box-sizing(border-box);
 
}
 

	
 

	
 
// Body reset
 

	
 
html {
 
  font-size: 10px;
 
  -webkit-tap-highlight-color: rgba(0,0,0,0);
 
}
 

	
 
body {
 
  font-family: $font-family-base;
 
  font-size: $font-size-base;
 
  line-height: $line-height-base;
 
  color: $text-color;
 
  background-color: $body-bg;
 
}
 

	
 
// Reset fonts for relevant elements
 
input,
 
button,
 
select,
 
textarea {
 
  font-family: inherit;
 
  font-size: inherit;
 
  line-height: inherit;
 
}
 

	
 

	
 
// Links
 

	
 
a {
 
  color: $link-color;
 
  text-decoration: none;
 

	
 
  &:hover,
 
  &:focus {
 
    color: $link-hover-color;
 
    text-decoration: $link-hover-decoration;
 
  }
 

	
 
  &:focus {
 
    @include tab-focus;
 
  }
 
}
 

	
 

	
 
// Figures
 
//
 
// We reset this here because previously Normalize had no `figure` margins. This
 
// ensures we don't break anyone's use of the element.
 

	
 
figure {
 
  margin: 0;
 
}
 

	
 

	
 
// Images
 

	
 
img {
 
  vertical-align: middle;
 
}
 

	
 
// Responsive images (ensure images don't scale beyond their parents)
 
.img-responsive {
 
  @include img-responsive;
 
}
 

	
 
// Rounded corners
 
.img-rounded {
 
  border-radius: $border-radius-large;
 
}
 

	
 
// Image thumbnails
 
//
 
// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
 
.img-thumbnail {
 
  padding: $thumbnail-padding;
 
  line-height: $line-height-base;
 
  background-color: $thumbnail-bg;
 
  border: 1px solid $thumbnail-border;
 
  border-radius: $thumbnail-border-radius;
 
  @include transition(all .2s ease-in-out);
 

	
 
  // Keep them at most 100% wide
 
  @include img-responsive(inline-block);
 
}
 

	
 
// Perfect circle
 
.img-circle {
 
  border-radius: 50%; // set radius in percents
 
}
 

	
 

	
 
// Horizontal rules
 

	
 
hr {
 
  margin-top:    $line-height-computed;
 
  margin-bottom: $line-height-computed;
 
  border: 0;
 
  border-top: 1px solid $hr-border;
 
}
 

	
 

	
 
// Only display content to screen readers
 
//
 
// See: http://a11yproject.com/posts/how-to-hide-content
 

	
 
.sr-only {
 
  position: absolute;
 
  width: 1px;
 
  height: 1px;
 
  margin: -1px;
 
  padding: 0;
 
  overflow: hidden;
 
  clip: rect(0,0,0,0);
 
  border: 0;
 
}
 

	
 
// Use in conjunction with .sr-only to only display content when it's focused.
 
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
 
// Credit: HTML5 Boilerplate
 

	
 
.sr-only-focusable {
 
  &:active,
 
  &:focus {
 
    position: static;
 
    width: auto;
 
    height: auto;
 
    margin: 0;
 
    overflow: visible;
 
    clip: auto;
 
  }
 
}
 

	
 

	
 
// iOS "clickable elements" fix for role="button"
 
//
 
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
 
// for traditionally non-focusable elements with role="button"
 
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
 

	
 
[role="button"] {
 
  cursor: pointer;
 
}
static/bootstrap/stylesheets/bootstrap/_tables.scss
Show inline comments
 
new file 100644
 
//
 
// Tables
 
// --------------------------------------------------
 

	
 

	
 
table {
 
  background-color: $table-bg;
 
}
 
caption {
 
  padding-top: $table-cell-padding;
 
  padding-bottom: $table-cell-padding;
 
  color: $text-muted;
 
  text-align: left;
 
}
 
th {
 
  text-align: left;
 
}
 

	
 

	
 
// Baseline styles
 

	
 
.table {
 
  width: 100%;
 
  max-width: 100%;
 
  margin-bottom: $line-height-computed;
 
  // Cells
 
  > thead,
 
  > tbody,
 
  > tfoot {
 
    > tr {
 
      > th,
 
      > td {
 
        padding: $table-cell-padding;
 
        line-height: $line-height-base;
 
        vertical-align: top;
 
        border-top: 1px solid $table-border-color;
 
      }
 
    }
 
  }
 
  // Bottom align for column headings
 
  > thead > tr > th {
 
    vertical-align: bottom;
 
    border-bottom: 2px solid $table-border-color;
 
  }
 
  // Remove top border from thead by default
 
  > caption + thead,
 
  > colgroup + thead,
 
  > thead:first-child {
 
    > tr:first-child {
 
      > th,
 
      > td {
 
        border-top: 0;
 
      }
 
    }
 
  }
 
  // Account for multiple tbody instances
 
  > tbody + tbody {
 
    border-top: 2px solid $table-border-color;
 
  }
 

	
 
  // Nesting
 
  .table {
 
    background-color: $body-bg;
 
  }
 
}
 

	
 

	
 
// Condensed table w/ half padding
 

	
 
.table-condensed {
 
  > thead,
 
  > tbody,
 
  > tfoot {
 
    > tr {
 
      > th,
 
      > td {
 
        padding: $table-condensed-cell-padding;
 
      }
 
    }
 
  }
 
}
 

	
 

	
 
// Bordered version
 
//
 
// Add borders all around the table and between all the columns.
 

	
 
.table-bordered {
 
  border: 1px solid $table-border-color;
 
  > thead,
 
  > tbody,
 
  > tfoot {
 
    > tr {
 
      > th,
 
      > td {
 
        border: 1px solid $table-border-color;
 
      }
 
    }
 
  }
 
  > thead > tr {
 
    > th,
 
    > td {
 
      border-bottom-width: 2px;
 
    }
 
  }
 
}
 

	
 

	
 
// Zebra-striping
 
//
 
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
 

	
 
.table-striped {
 
  > tbody > tr:nth-of-type(odd) {
 
    background-color: $table-bg-accent;
 
  }
 
}
 

	
 

	
 
// Hover effect
 
//
 
// Placed here since it has to come after the potential zebra striping
 

	
 
.table-hover {
 
  > tbody > tr:hover {
 
    background-color: $table-bg-hover;
 
  }
 
}
 

	
 

	
 
// Table cell sizing
 
//
 
// Reset default table behavior
 

	
 
table col[class*="col-"] {
 
  position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
 
  float: none;
 
  display: table-column;
 
}
 
table {
 
  td,
 
  th {
 
    &[class*="col-"] {
 
      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
 
      float: none;
 
      display: table-cell;
 
    }
 
  }
 
}
 

	
 

	
 
// Table backgrounds
 
//
 
// Exact selectors below required to override `.table-striped` and prevent
 
// inheritance to nested tables.
 

	
 
// Generate the contextual variants
 
@include table-row-variant('active', $table-bg-active);
 
@include table-row-variant('success', $state-success-bg);
 
@include table-row-variant('info', $state-info-bg);
 
@include table-row-variant('warning', $state-warning-bg);
 
@include table-row-variant('danger', $state-danger-bg);
 

	
 

	
 
// Responsive tables
 
//
 
// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
 
// by enabling horizontal scrolling. Only applies <768px. Everything above that
 
// will display normally.
 

	
 
.table-responsive {
 
  overflow-x: auto;
 
  min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
 

	
 
  @media screen and (max-width: $screen-xs-max) {
 
    width: 100%;
 
    margin-bottom: ($line-height-computed * 0.75);
 
    overflow-y: hidden;
 
    -ms-overflow-style: -ms-autohiding-scrollbar;
 
    border: 1px solid $table-border-color;
 

	
 
    // Tighten up spacing
 
    > .table {
 
      margin-bottom: 0;
 

	
 
      // Ensure the content doesn't wrap
 
      > thead,
 
      > tbody,
 
      > tfoot {
 
        > tr {
 
          > th,
 
          > td {
 
            white-space: nowrap;
 
          }
 
        }
 
      }
 
    }
 

	
 
    // Special overrides for the bordered tables
 
    > .table-bordered {
 
      border: 0;
 

	
 
      // Nuke the appropriate borders so that the parent can handle them
 
      > thead,
 
      > tbody,
 
      > tfoot {
 
        > tr {
 
          > th:first-child,
 
          > td:first-child {
 
            border-left: 0;
 
          }
 
          > th:last-child,
 
          > td:last-child {
 
            border-right: 0;
 
          }
 
        }
 
      }
 

	
 
      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
 
      // chances are there will be only one `tr` in a `thead` and that would
 
      // remove the border altogether.
 
      > tbody,
 
      > tfoot {
 
        > tr:last-child {
 
          > th,
 
          > td {
 
            border-bottom: 0;
 
          }
 
        }
 
      }
 

	
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_theme.scss
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 
 * Copyright 2011-2016 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 */
 

	
 
//
 
// Load core variables and mixins
 
// --------------------------------------------------
 

	
 
@import "variables";
 
@import "mixins";
 

	
 

	
 
//
 
// Buttons
 
// --------------------------------------------------
 

	
 
// Common styles
 
.btn-default,
 
.btn-primary,
 
.btn-success,
 
.btn-info,
 
.btn-warning,
 
.btn-danger {
 
  text-shadow: 0 -1px 0 rgba(0,0,0,.2);
 
  $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
 
  @include box-shadow($shadow);
 

	
 
  // Reset the shadow
 
  &:active,
 
  &.active {
 
    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
 
  }
 

	
 
  &.disabled,
 
  &[disabled],
 
  fieldset[disabled] & {
 
    @include box-shadow(none);
 
  }
 

	
 
  .badge {
 
    text-shadow: none;
 
  }
 
}
 

	
 
// Mixin for generating new styles
 
@mixin btn-styles($btn-color: #555) {
 
  @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
 
  @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
 
  background-repeat: repeat-x;
 
  border-color: darken($btn-color, 14%);
 

	
 
  &:hover,
 
  &:focus  {
 
    background-color: darken($btn-color, 12%);
 
    background-position: 0 -15px;
 
  }
 

	
 
  &:active,
 
  &.active {
 
    background-color: darken($btn-color, 12%);
 
    border-color: darken($btn-color, 14%);
 
  }
 

	
 
  &.disabled,
 
  &[disabled],
 
  fieldset[disabled] & {
 
    &,
 
    &:hover,
 
    &:focus,
 
    &.focus,
 
    &:active,
 
    &.active {
 
      background-color: darken($btn-color, 12%);
 
      background-image: none;
 
    }
 
  }
 
}
 

	
 
// Common styles
 
.btn {
 
  // Remove the gradient for the pressed/active state
 
  &:active,
 
  &.active {
 
    background-image: none;
 
  }
 
}
 

	
 
// Apply the mixin to the buttons
 
.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
 
.btn-primary { @include btn-styles($btn-primary-bg); }
 
.btn-success { @include btn-styles($btn-success-bg); }
 
.btn-info    { @include btn-styles($btn-info-bg); }
 
.btn-warning { @include btn-styles($btn-warning-bg); }
 
.btn-danger  { @include btn-styles($btn-danger-bg); }
 

	
 

	
 
//
 
// Images
 
// --------------------------------------------------
 

	
 
.thumbnail,
 
.img-thumbnail {
 
  @include box-shadow(0 1px 2px rgba(0,0,0,.075));
 
}
 

	
 

	
 
//
 
// Dropdowns
 
// --------------------------------------------------
 

	
 
.dropdown-menu > li > a:hover,
 
.dropdown-menu > li > a:focus {
 
  @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
 
  background-color: darken($dropdown-link-hover-bg, 5%);
 
}
 
.dropdown-menu > .active > a,
 
.dropdown-menu > .active > a:hover,
 
.dropdown-menu > .active > a:focus {
 
  @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
 
  background-color: darken($dropdown-link-active-bg, 5%);
 
}
 

	
 

	
 
//
 
// Navbar
 
// --------------------------------------------------
 

	
 
// Default navbar
 
.navbar-default {
 
  @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
 
  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
 
  border-radius: $navbar-border-radius;
 
  $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
 
  @include box-shadow($shadow);
 

	
 
  .navbar-nav > .open > a,
 
  .navbar-nav > .active > a {
 
    @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));
 
    @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
 
  }
 
}
 
.navbar-brand,
 
.navbar-nav > li > a {
 
  text-shadow: 0 1px 0 rgba(255,255,255,.25);
 
}
 

	
 
// Inverted navbar
 
.navbar-inverse {
 
  @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
 
  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
 
  border-radius: $navbar-border-radius;
 
  .navbar-nav > .open > a,
 
  .navbar-nav > .active > a {
 
    @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));
 
    @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
 
  }
 

	
 
  .navbar-brand,
 
  .navbar-nav > li > a {
 
    text-shadow: 0 -1px 0 rgba(0,0,0,.25);
 
  }
 
}
 

	
 
// Undo rounded corners in static and fixed navbars
 
.navbar-static-top,
 
.navbar-fixed-top,
 
.navbar-fixed-bottom {
 
  border-radius: 0;
 
}
 

	
 
// Fix active state of dropdown items in collapsed mode
 
@media (max-width: $grid-float-breakpoint-max) {
 
  .navbar .navbar-nav .open .dropdown-menu > .active > a {
 
    &,
 
    &:hover,
 
    &:focus {
 
      color: #fff;
 
      @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
 
    }
 
  }
 
}
 

	
 

	
 
//
 
// Alerts
 
// --------------------------------------------------
 

	
 
// Common styles
 
.alert {
 
  text-shadow: 0 1px 0 rgba(255,255,255,.2);
 
  $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
 
  @include box-shadow($shadow);
 
}
 

	
 
// Mixin for generating new styles
 
@mixin alert-styles($color) {
 
  @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
 
  border-color: darken($color, 15%);
 
}
 

	
 
// Apply the mixin to the alerts
 
.alert-success    { @include alert-styles($alert-success-bg); }
 
.alert-info       { @include alert-styles($alert-info-bg); }
 
.alert-warning    { @include alert-styles($alert-warning-bg); }
 
.alert-danger     { @include alert-styles($alert-danger-bg); }
 

	
 

	
 
//
 
// Progress bars
 
// --------------------------------------------------
 

	
 
// Give the progress background some depth
 
.progress {
 
  @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
 
}
 

	
 
// Mixin for generating new styles
 
@mixin progress-bar-styles($color) {
 
  @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
 
}
 

	
 
// Apply the mixin to the progress bars
 
.progress-bar            { @include progress-bar-styles($progress-bar-bg); }
 
.progress-bar-success    { @include progress-bar-styles($progress-bar-success-bg); }
 
.progress-bar-info       { @include progress-bar-styles($progress-bar-info-bg); }
 
.progress-bar-warning    { @include progress-bar-styles($progress-bar-warning-bg); }
 
.progress-bar-danger     { @include progress-bar-styles($progress-bar-danger-bg); }
 

	
 
// Reset the striped class because our mixins don't do multiple gradients and
 
// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
 
.progress-bar-striped {
 
  @include gradient-striped;
 
}
 

	
 

	
 
//
 
// List groups
 
// --------------------------------------------------
 

	
 
.list-group {
 
  border-radius: $border-radius-base;
 
  @include box-shadow(0 1px 2px rgba(0,0,0,.075));
 
}
 
.list-group-item.active,
 
.list-group-item.active:hover,
 
.list-group-item.active:focus {
 
  text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
 
  @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
 
  border-color: darken($list-group-active-border, 7.5%);
 

	
 
  .badge {
 
    text-shadow: none;
 
  }
 
}
 

	
 

	
 
//
 
// Panels
 
// --------------------------------------------------
 

	
 
// Common styles
 
.panel {
 
  @include box-shadow(0 1px 2px rgba(0,0,0,.05));
 
}
 

	
 
// Mixin for generating new styles
 
@mixin panel-heading-styles($color) {
 
  @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
 
}
 

	
 
// Apply the mixin to the panel headings only
 
.panel-default > .panel-heading   { @include panel-heading-styles($panel-default-heading-bg); }
 
.panel-primary > .panel-heading   { @include panel-heading-styles($panel-primary-heading-bg); }
 
.panel-success > .panel-heading   { @include panel-heading-styles($panel-success-heading-bg); }
 
.panel-info > .panel-heading      { @include panel-heading-styles($panel-info-heading-bg); }
 
.panel-warning > .panel-heading   { @include panel-heading-styles($panel-warning-heading-bg); }
 
.panel-danger > .panel-heading    { @include panel-heading-styles($panel-danger-heading-bg); }
 

	
 

	
 
//
 
// Wells
 
// --------------------------------------------------
 

	
 
.well {
 
  @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
 
  border-color: darken($well-bg, 10%);
 
  $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
 
  @include box-shadow($shadow);
 
}
static/bootstrap/stylesheets/bootstrap/_thumbnails.scss
Show inline comments
 
new file 100644
 
//
 
// Thumbnails
 
// --------------------------------------------------
 

	
 

	
 
// Mixin and adjust the regular image class
 
.thumbnail {
 
  display: block;
 
  padding: $thumbnail-padding;
 
  margin-bottom: $line-height-computed;
 
  line-height: $line-height-base;
 
  background-color: $thumbnail-bg;
 
  border: 1px solid $thumbnail-border;
 
  border-radius: $thumbnail-border-radius;
 
  @include transition(border .2s ease-in-out);
 

	
 
  > img,
 
  a > img {
 
    @include img-responsive;
 
    margin-left: auto;
 
    margin-right: auto;
 
  }
 

	
 
  // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
 

	
 
  // Image captions
 
  .caption {
 
    padding: $thumbnail-caption-padding;
 
    color: $thumbnail-caption-color;
 
  }
 
}
 

	
 
// Add a hover state for linked versions only
 
a.thumbnail:hover,
 
a.thumbnail:focus,
 
a.thumbnail.active {
 
  border-color: $link-color;
 
}
static/bootstrap/stylesheets/bootstrap/_tooltip.scss
Show inline comments
 
new file 100644
 
//
 
// Tooltips
 
// --------------------------------------------------
 

	
 

	
 
// Base class
 
.tooltip {
 
  position: absolute;
 
  z-index: $zindex-tooltip;
 
  display: block;
 
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
 
  // So reset our font and text properties to avoid inheriting weird values.
 
  @include reset-text;
 
  font-size: $font-size-small;
 

	
 
  @include opacity(0);
 

	
 
  &.in     { @include opacity($tooltip-opacity); }
 
  &.top    { margin-top:  -3px; padding: $tooltip-arrow-width 0; }
 
  &.right  { margin-left:  3px; padding: 0 $tooltip-arrow-width; }
 
  &.bottom { margin-top:   3px; padding: $tooltip-arrow-width 0; }
 
  &.left   { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
 
}
 

	
 
// Wrapper for the tooltip content
 
.tooltip-inner {
 
  max-width: $tooltip-max-width;
 
  padding: 3px 8px;
 
  color: $tooltip-color;
 
  text-align: center;
 
  background-color: $tooltip-bg;
 
  border-radius: $border-radius-base;
 
}
 

	
 
// Arrows
 
.tooltip-arrow {
 
  position: absolute;
 
  width: 0;
 
  height: 0;
 
  border-color: transparent;
 
  border-style: solid;
 
}
 
// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
 
.tooltip {
 
  &.top .tooltip-arrow {
 
    bottom: 0;
 
    left: 50%;
 
    margin-left: -$tooltip-arrow-width;
 
    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
 
    border-top-color: $tooltip-arrow-color;
 
  }
 
  &.top-left .tooltip-arrow {
 
    bottom: 0;
 
    right: $tooltip-arrow-width;
 
    margin-bottom: -$tooltip-arrow-width;
 
    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
 
    border-top-color: $tooltip-arrow-color;
 
  }
 
  &.top-right .tooltip-arrow {
 
    bottom: 0;
 
    left: $tooltip-arrow-width;
 
    margin-bottom: -$tooltip-arrow-width;
 
    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
 
    border-top-color: $tooltip-arrow-color;
 
  }
 
  &.right .tooltip-arrow {
 
    top: 50%;
 
    left: 0;
 
    margin-top: -$tooltip-arrow-width;
 
    border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
 
    border-right-color: $tooltip-arrow-color;
 
  }
 
  &.left .tooltip-arrow {
 
    top: 50%;
 
    right: 0;
 
    margin-top: -$tooltip-arrow-width;
 
    border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
 
    border-left-color: $tooltip-arrow-color;
 
  }
 
  &.bottom .tooltip-arrow {
 
    top: 0;
 
    left: 50%;
 
    margin-left: -$tooltip-arrow-width;
 
    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
 
    border-bottom-color: $tooltip-arrow-color;
 
  }
 
  &.bottom-left .tooltip-arrow {
 
    top: 0;
 
    right: $tooltip-arrow-width;
 
    margin-top: -$tooltip-arrow-width;
 
    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
 
    border-bottom-color: $tooltip-arrow-color;
 
  }
 
  &.bottom-right .tooltip-arrow {
 
    top: 0;
 
    left: $tooltip-arrow-width;
 
    margin-top: -$tooltip-arrow-width;
 
    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
 
    border-bottom-color: $tooltip-arrow-color;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/_type.scss
Show inline comments
 
new file 100644
 
//
 
// Typography
 
// --------------------------------------------------
 

	
 

	
 
// Headings
 
// -------------------------
 

	
 
h1, h2, h3, h4, h5, h6,
 
.h1, .h2, .h3, .h4, .h5, .h6 {
 
  font-family: $headings-font-family;
 
  font-weight: $headings-font-weight;
 
  line-height: $headings-line-height;
 
  color: $headings-color;
 

	
 
  small,
 
  .small {
 
    font-weight: normal;
 
    line-height: 1;
 
    color: $headings-small-color;
 
  }
 
}
 

	
 
h1, .h1,
 
h2, .h2,
 
h3, .h3 {
 
  margin-top: $line-height-computed;
 
  margin-bottom: ($line-height-computed / 2);
 

	
 
  small,
 
  .small {
 
    font-size: 65%;
 
  }
 
}
 
h4, .h4,
 
h5, .h5,
 
h6, .h6 {
 
  margin-top: ($line-height-computed / 2);
 
  margin-bottom: ($line-height-computed / 2);
 

	
 
  small,
 
  .small {
 
    font-size: 75%;
 
  }
 
}
 

	
 
h1, .h1 { font-size: $font-size-h1; }
 
h2, .h2 { font-size: $font-size-h2; }
 
h3, .h3 { font-size: $font-size-h3; }
 
h4, .h4 { font-size: $font-size-h4; }
 
h5, .h5 { font-size: $font-size-h5; }
 
h6, .h6 { font-size: $font-size-h6; }
 

	
 

	
 
// Body text
 
// -------------------------
 

	
 
p {
 
  margin: 0 0 ($line-height-computed / 2);
 
}
 

	
 
.lead {
 
  margin-bottom: $line-height-computed;
 
  font-size: floor(($font-size-base * 1.15));
 
  font-weight: 300;
 
  line-height: 1.4;
 

	
 
  @media (min-width: $screen-sm-min) {
 
    font-size: ($font-size-base * 1.5);
 
  }
 
}
 

	
 

	
 
// Emphasis & misc
 
// -------------------------
 

	
 
// Ex: (12px small font / 14px base font) * 100% = about 85%
 
small,
 
.small {
 
  font-size: floor((100% * $font-size-small / $font-size-base));
 
}
 

	
 
mark,
 
.mark {
 
  background-color: $state-warning-bg;
 
  padding: .2em;
 
}
 

	
 
// Alignment
 
.text-left           { text-align: left; }
 
.text-right          { text-align: right; }
 
.text-center         { text-align: center; }
 
.text-justify        { text-align: justify; }
 
.text-nowrap         { white-space: nowrap; }
 

	
 
// Transformation
 
.text-lowercase      { text-transform: lowercase; }
 
.text-uppercase      { text-transform: uppercase; }
 
.text-capitalize     { text-transform: capitalize; }
 

	
 
// Contextual colors
 
.text-muted {
 
  color: $text-muted;
 
}
 

	
 
@include text-emphasis-variant('.text-primary', $brand-primary);
 

	
 
@include text-emphasis-variant('.text-success', $state-success-text);
 

	
 
@include text-emphasis-variant('.text-info', $state-info-text);
 

	
 
@include text-emphasis-variant('.text-warning', $state-warning-text);
 

	
 
@include text-emphasis-variant('.text-danger', $state-danger-text);
 

	
 
// Contextual backgrounds
 
// For now we'll leave these alongside the text classes until v4 when we can
 
// safely shift things around (per SemVer rules).
 
.bg-primary {
 
  // Given the contrast here, this is the only class to have its color inverted
 
  // automatically.
 
  color: #fff;
 
}
 
@include bg-variant('.bg-primary', $brand-primary);
 

	
 
@include bg-variant('.bg-success', $state-success-bg);
 

	
 
@include bg-variant('.bg-info', $state-info-bg);
 

	
 
@include bg-variant('.bg-warning', $state-warning-bg);
 

	
 
@include bg-variant('.bg-danger', $state-danger-bg);
 

	
 

	
 
// Page header
 
// -------------------------
 

	
 
.page-header {
 
  padding-bottom: (($line-height-computed / 2) - 1);
 
  margin: ($line-height-computed * 2) 0 $line-height-computed;
 
  border-bottom: 1px solid $page-header-border-color;
 
}
 

	
 

	
 
// Lists
 
// -------------------------
 

	
 
// Unordered and Ordered lists
 
ul,
 
ol {
 
  margin-top: 0;
 
  margin-bottom: ($line-height-computed / 2);
 
  ul,
 
  ol {
 
    margin-bottom: 0;
 
  }
 
}
 

	
 
// List options
 

	
 
// [converter] extracted from `.list-unstyled` for libsass compatibility
 
@mixin list-unstyled {
 
  padding-left: 0;
 
  list-style: none;
 
}
 
// [converter] extracted as `@mixin list-unstyled` for libsass compatibility
 
.list-unstyled {
 
  @include list-unstyled;
 
}
 

	
 

	
 
// Inline turns list items into inline-block
 
.list-inline {
 
  @include list-unstyled;
 
  margin-left: -5px;
 

	
 
  > li {
 
    display: inline-block;
 
    padding-left: 5px;
 
    padding-right: 5px;
 
  }
 
}
 

	
 
// Description Lists
 
dl {
 
  margin-top: 0; // Remove browser default
 
  margin-bottom: $line-height-computed;
 
}
 
dt,
 
dd {
 
  line-height: $line-height-base;
 
}
 
dt {
 
  font-weight: bold;
 
}
 
dd {
 
  margin-left: 0; // Undo browser default
 
}
 

	
 
// Horizontal description lists
 
//
 
// Defaults to being stacked without any of the below styles applied, until the
 
// grid breakpoint is reached (default of ~768px).
 

	
 
.dl-horizontal {
 
  dd {
 
    @include clearfix; // Clear the floated `dt` if an empty `dd` is present
 
  }
 

	
 
  @media (min-width: $dl-horizontal-breakpoint) {
 
    dt {
 
      float: left;
 
      width: ($dl-horizontal-offset - 20);
 
      clear: left;
 
      text-align: right;
 
      @include text-overflow;
 
    }
 
    dd {
 
      margin-left: $dl-horizontal-offset;
 
    }
 
  }
 
}
 

	
 

	
 
// Misc
 
// -------------------------
 

	
 
// Abbreviations and acronyms
 
abbr[title],
 
// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
 
abbr[data-original-title] {
 
  cursor: help;
 
  border-bottom: 1px dotted $abbr-border-color;
 
}
 
.initialism {
 
  font-size: 90%;
 
  @extend .text-uppercase;
 
}
 

	
 
// Blockquotes
 
blockquote {
 
  padding: ($line-height-computed / 2) $line-height-computed;
 
  margin: 0 0 $line-height-computed;
 
  font-size: $blockquote-font-size;
 
  border-left: 5px solid $blockquote-border-color;
 

	
 
  p,
 
  ul,
 
  ol {
 
    &:last-child {
 
      margin-bottom: 0;
 
    }
 
  }
 

	
 
  // Note: Deprecated small and .small as of v3.1.0
 
  // Context: https://github.com/twbs/bootstrap/issues/11660
 
  footer,
 
  small,
 
  .small {
 
    display: block;
 
    font-size: 80%; // back to default font-size
 
    line-height: $line-height-base;
 
    color: $blockquote-small-color;
 

	
 
    &:before {
 
      content: '\2014 \00A0'; // em dash, nbsp
 
    }
 
  }
 
}
 

	
 
// Opposite alignment of blockquote
 
//
 
// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
 
.blockquote-reverse,
 
blockquote.pull-right {
 
  padding-right: 15px;
 
  padding-left: 0;
 
  border-right: 5px solid $blockquote-border-color;
 
  border-left: 0;
 
  text-align: right;
 

	
 
  // Account for citation
 
  footer,
 
  small,
 
  .small {
 
    &:before { content: ''; }
 
    &:after {
 
      content: '\00A0 \2014'; // nbsp, em dash
 
    }
 
  }
 
}
 

	
 
// Addresses
 
address {
 
  margin-bottom: $line-height-computed;
 
  font-style: normal;
 
  line-height: $line-height-base;
 
}
static/bootstrap/stylesheets/bootstrap/_utilities.scss
Show inline comments
 
new file 100644
 
//
 
// Utility classes
 
// --------------------------------------------------
 

	
 

	
 
// Floats
 
// -------------------------
 

	
 
.clearfix {
 
  @include clearfix;
 
}
 
.center-block {
 
  @include center-block;
 
}
 
.pull-right {
 
  float: right !important;
 
}
 
.pull-left {
 
  float: left !important;
 
}
 

	
 

	
 
// Toggling content
 
// -------------------------
 

	
 
// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
 
.hide {
 
  display: none !important;
 
}
 
.show {
 
  display: block !important;
 
}
 
.invisible {
 
  visibility: hidden;
 
}
 
.text-hide {
 
  @include text-hide;
 
}
 

	
 

	
 
// Hide from screenreaders and browsers
 
//
 
// Credit: HTML5 Boilerplate
 

	
 
.hidden {
 
  display: none !important;
 
}
 

	
 

	
 
// For Affix plugin
 
// -------------------------
 

	
 
.affix {
 
  position: fixed;
 
}
static/bootstrap/stylesheets/bootstrap/_variables.scss
Show inline comments
 
new file 100644
 
$bootstrap-sass-asset-helper: false !default;
 
//
 
// Variables
 
// --------------------------------------------------
 

	
 

	
 
//== Colors
 
//
 
//## Gray and brand colors for use across Bootstrap.
 

	
 
$gray-base:              #000 !default;
 
$gray-darker:            lighten($gray-base, 13.5%) !default; // #222
 
$gray-dark:              lighten($gray-base, 20%) !default;   // #333
 
$gray:                   lighten($gray-base, 33.5%) !default; // #555
 
$gray-light:             lighten($gray-base, 46.7%) !default; // #777
 
$gray-lighter:           lighten($gray-base, 93.5%) !default; // #eee
 

	
 
$brand-primary:         darken(#428bca, 6.5%) !default; // #337ab7
 
$brand-success:         #5cb85c !default;
 
$brand-info:            #5bc0de !default;
 
$brand-warning:         #f0ad4e !default;
 
$brand-danger:          #d9534f !default;
 

	
 

	
 
//== Scaffolding
 
//
 
//## Settings for some of the most global styles.
 

	
 
//** Background color for `<body>`.
 
$body-bg:               #fff !default;
 
//** Global text color on `<body>`.
 
$text-color:            $gray-dark !default;
 

	
 
//** Global textual link color.
 
$link-color:            $brand-primary !default;
 
//** Link hover color set via `darken()` function.
 
$link-hover-color:      darken($link-color, 15%) !default;
 
//** Link hover decoration.
 
$link-hover-decoration: underline !default;
 

	
 

	
 
//== Typography
 
//
 
//## Font, line-height, and color for body text, headings, and more.
 

	
 
$font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif !default;
 
$font-family-serif:       Georgia, "Times New Roman", Times, serif !default;
 
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
 
$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
 
$font-family-base:        $font-family-sans-serif !default;
 

	
 
$font-size-base:          14px !default;
 
$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
 
$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
 

	
 
$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
 
$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
 
$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
 
$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
 
$font-size-h5:            $font-size-base !default;
 
$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
 

	
 
//** Unit-less `line-height` for use in components like buttons.
 
$line-height-base:        1.428571429 !default; // 20/14
 
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
 
$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
 

	
 
//** By default, this inherits from the `<body>`.
 
$headings-font-family:    inherit !default;
 
$headings-font-weight:    500 !default;
 
$headings-line-height:    1.1 !default;
 
$headings-color:          inherit !default;
 

	
 

	
 
//== Iconography
 
//
 
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
 

	
 
//** Load fonts from this directory.
 

	
 
// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
 
// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
 
$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
 

	
 
//** File name for all font files.
 
$icon-font-name:          "glyphicons-halflings-regular" !default;
 
//** Element ID within SVG icon file.
 
$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
 

	
 

	
 
//== Components
 
//
 
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
 

	
 
$padding-base-vertical:     6px !default;
 
$padding-base-horizontal:   12px !default;
 

	
 
$padding-large-vertical:    10px !default;
 
$padding-large-horizontal:  16px !default;
 

	
 
$padding-small-vertical:    5px !default;
 
$padding-small-horizontal:  10px !default;
 

	
 
$padding-xs-vertical:       1px !default;
 
$padding-xs-horizontal:     5px !default;
 

	
 
$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
 
$line-height-small:         1.5 !default;
 

	
 
$border-radius-base:        4px !default;
 
$border-radius-large:       6px !default;
 
$border-radius-small:       3px !default;
 

	
 
//** Global color for active items (e.g., navs or dropdowns).
 
$component-active-color:    #fff !default;
 
//** Global background color for active items (e.g., navs or dropdowns).
 
$component-active-bg:       $brand-primary !default;
 

	
 
//** Width of the `border` for generating carets that indicate dropdowns.
 
$caret-width-base:          4px !default;
 
//** Carets increase slightly in size for larger components.
 
$caret-width-large:         5px !default;
 

	
 

	
 
//== Tables
 
//
 
//## Customizes the `.table` component with basic values, each used across all table variations.
 

	
 
//** Padding for `<th>`s and `<td>`s.
 
$table-cell-padding:            8px !default;
 
//** Padding for cells in `.table-condensed`.
 
$table-condensed-cell-padding:  5px !default;
 

	
 
//** Default background color used for all tables.
 
$table-bg:                      transparent !default;
 
//** Background color used for `.table-striped`.
 
$table-bg-accent:               #f9f9f9 !default;
 
//** Background color used for `.table-hover`.
 
$table-bg-hover:                #f5f5f5 !default;
 
$table-bg-active:               $table-bg-hover !default;
 

	
 
//** Border color for table and cell borders.
 
$table-border-color:            #ddd !default;
 

	
 

	
 
//== Buttons
 
//
 
//## For each of Bootstrap's buttons, define text, background and border color.
 

	
 
$btn-font-weight:                normal !default;
 

	
 
$btn-default-color:              #333 !default;
 
$btn-default-bg:                 #fff !default;
 
$btn-default-border:             #ccc !default;
 

	
 
$btn-primary-color:              #fff !default;
 
$btn-primary-bg:                 $brand-primary !default;
 
$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
 

	
 
$btn-success-color:              #fff !default;
 
$btn-success-bg:                 $brand-success !default;
 
$btn-success-border:             darken($btn-success-bg, 5%) !default;
 

	
 
$btn-info-color:                 #fff !default;
 
$btn-info-bg:                    $brand-info !default;
 
$btn-info-border:                darken($btn-info-bg, 5%) !default;
 

	
 
$btn-warning-color:              #fff !default;
 
$btn-warning-bg:                 $brand-warning !default;
 
$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
 

	
 
$btn-danger-color:               #fff !default;
 
$btn-danger-bg:                  $brand-danger !default;
 
$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
 

	
 
$btn-link-disabled-color:        $gray-light !default;
 

	
 
// Allows for customizing button radius independently from global border radius
 
$btn-border-radius-base:         $border-radius-base !default;
 
$btn-border-radius-large:        $border-radius-large !default;
 
$btn-border-radius-small:        $border-radius-small !default;
 

	
 

	
 
//== Forms
 
//
 
//##
 

	
 
//** `<input>` background color
 
$input-bg:                       #fff !default;
 
//** `<input disabled>` background color
 
$input-bg-disabled:              $gray-lighter !default;
 

	
 
//** Text color for `<input>`s
 
$input-color:                    $gray !default;
 
//** `<input>` border color
 
$input-border:                   #ccc !default;
 

	
 
// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
 
//** Default `.form-control` border radius
 
// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
 
$input-border-radius:            $border-radius-base !default;
 
//** Large `.form-control` border radius
 
$input-border-radius-large:      $border-radius-large !default;
 
//** Small `.form-control` border radius
 
$input-border-radius-small:      $border-radius-small !default;
 

	
 
//** Border color for inputs on focus
 
$input-border-focus:             #66afe9 !default;
 

	
 
//** Placeholder text color
 
$input-color-placeholder:        #999 !default;
 

	
 
//** Default `.form-control` height
 
$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
 
//** Large `.form-control` height
 
$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
 
//** Small `.form-control` height
 
$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
 

	
 
//** `.form-group` margin
 
$form-group-margin-bottom:       15px !default;
 

	
 
$legend-color:                   $gray-dark !default;
 
$legend-border-color:            #e5e5e5 !default;
 

	
 
//** Background color for textual input addons
 
$input-group-addon-bg:           $gray-lighter !default;
 
//** Border color for textual input addons
 
$input-group-addon-border-color: $input-border !default;
 

	
 
//** Disabled cursor for form controls and buttons.
 
$cursor-disabled:                not-allowed !default;
 

	
 

	
 
//== Dropdowns
 
//
 
//## Dropdown menu container and contents.
 

	
 
//** Background for the dropdown menu.
 
$dropdown-bg:                    #fff !default;
 
//** Dropdown menu `border-color`.
 
$dropdown-border:                rgba(0,0,0,.15) !default;
 
//** Dropdown menu `border-color` **for IE8**.
 
$dropdown-fallback-border:       #ccc !default;
 
//** Divider color for between dropdown items.
 
$dropdown-divider-bg:            #e5e5e5 !default;
 

	
 
//** Dropdown link text color.
 
$dropdown-link-color:            $gray-dark !default;
 
//** Hover color for dropdown links.
 
$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
 
//** Hover background for dropdown links.
 
$dropdown-link-hover-bg:         #f5f5f5 !default;
 

	
 
//** Active dropdown menu item text color.
 
$dropdown-link-active-color:     $component-active-color !default;
 
//** Active dropdown menu item background color.
 
$dropdown-link-active-bg:        $component-active-bg !default;
 

	
 
//** Disabled dropdown menu item background color.
 
$dropdown-link-disabled-color:   $gray-light !default;
 

	
 
//** Text color for headers within dropdown menus.
 
$dropdown-header-color:          $gray-light !default;
 

	
 
//** Deprecated `$dropdown-caret-color` as of v3.1.0
 
$dropdown-caret-color:           #000 !default;
 

	
 

	
 
//-- Z-index master list
 
//
 
// Warning: Avoid customizing these values. They're used for a bird's eye view
 
// of components dependent on the z-axis and are designed to all work together.
 
//
 
// Note: These variables are not generated into the Customizer.
 

	
 
$zindex-navbar:            1000 !default;
 
$zindex-dropdown:          1000 !default;
 
$zindex-popover:           1060 !default;
 
$zindex-tooltip:           1070 !default;
 
$zindex-navbar-fixed:      1030 !default;
 
$zindex-modal-background:  1040 !default;
 
$zindex-modal:             1050 !default;
 

	
 

	
 
//== Media queries breakpoints
 
//
 
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
 

	
 
// Extra small screen / phone
 
//** Deprecated `$screen-xs` as of v3.0.1
 
$screen-xs:                  480px !default;
 
//** Deprecated `$screen-xs-min` as of v3.2.0
 
$screen-xs-min:              $screen-xs !default;
 
//** Deprecated `$screen-phone` as of v3.0.1
 
$screen-phone:               $screen-xs-min !default;
 

	
 
// Small screen / tablet
 
//** Deprecated `$screen-sm` as of v3.0.1
 
$screen-sm:                  768px !default;
 
$screen-sm-min:              $screen-sm !default;
 
//** Deprecated `$screen-tablet` as of v3.0.1
 
$screen-tablet:              $screen-sm-min !default;
 

	
 
// Medium screen / desktop
 
//** Deprecated `$screen-md` as of v3.0.1
 
$screen-md:                  992px !default;
 
$screen-md-min:              $screen-md !default;
 
//** Deprecated `$screen-desktop` as of v3.0.1
 
$screen-desktop:             $screen-md-min !default;
 

	
 
// Large screen / wide desktop
 
//** Deprecated `$screen-lg` as of v3.0.1
 
$screen-lg:                  1200px !default;
 
$screen-lg-min:              $screen-lg !default;
 
//** Deprecated `$screen-lg-desktop` as of v3.0.1
 
$screen-lg-desktop:          $screen-lg-min !default;
 

	
 
// So media queries don't overlap when required, provide a maximum
 
$screen-xs-max:              ($screen-sm-min - 1) !default;
 
$screen-sm-max:              ($screen-md-min - 1) !default;
 
$screen-md-max:              ($screen-lg-min - 1) !default;
 

	
 

	
 
//== Grid system
 
//
 
//## Define your custom responsive grid.
 

	
 
//** Number of columns in the grid.
 
$grid-columns:              12 !default;
 
//** Padding between columns. Gets divided in half for the left and right.
 
$grid-gutter-width:         30px !default;
 
// Navbar collapse
 
//** Point at which the navbar becomes uncollapsed.
 
$grid-float-breakpoint:     $screen-sm-min !default;
 
//** Point at which the navbar begins collapsing.
 
$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
 

	
 

	
 
//== Container sizes
 
//
 
//## Define the maximum width of `.container` for different screen sizes.
 

	
 
// Small screen / tablet
 
$container-tablet:             (720px + $grid-gutter-width) !default;
 
//** For `$screen-sm-min` and up.
 
$container-sm:                 $container-tablet !default;
 

	
 
// Medium screen / desktop
 
$container-desktop:            (940px + $grid-gutter-width) !default;
 
//** For `$screen-md-min` and up.
 
$container-md:                 $container-desktop !default;
 

	
 
// Large screen / wide desktop
 
$container-large-desktop:      (1140px + $grid-gutter-width) !default;
 
//** For `$screen-lg-min` and up.
 
$container-lg:                 $container-large-desktop !default;
 

	
 

	
 
//== Navbar
 
//
 
//##
 

	
 
// Basics of a navbar
 
$navbar-height:                    50px !default;
 
$navbar-margin-bottom:             $line-height-computed !default;
 
$navbar-border-radius:             $border-radius-base !default;
 
$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
 
$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
 
$navbar-collapse-max-height:       340px !default;
 

	
 
$navbar-default-color:             #777 !default;
 
$navbar-default-bg:                #f8f8f8 !default;
 
$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
 

	
 
// Navbar links
 
$navbar-default-link-color:                #777 !default;
 
$navbar-default-link-hover-color:          #333 !default;
 
$navbar-default-link-hover-bg:             transparent !default;
 
$navbar-default-link-active-color:         #555 !default;
 
$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
 
$navbar-default-link-disabled-color:       #ccc !default;
 
$navbar-default-link-disabled-bg:          transparent !default;
 

	
 
// Navbar brand label
 
$navbar-default-brand-color:               $navbar-default-link-color !default;
 
$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
 
$navbar-default-brand-hover-bg:            transparent !default;
 

	
 
// Navbar toggle
 
$navbar-default-toggle-hover-bg:           #ddd !default;
 
$navbar-default-toggle-icon-bar-bg:        #888 !default;
 
$navbar-default-toggle-border-color:       #ddd !default;
 

	
 

	
 
//=== Inverted navbar
 
// Reset inverted navbar basics
 
$navbar-inverse-color:                      lighten($gray-light, 15%) !default;
 
$navbar-inverse-bg:                         #222 !default;
 
$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
 

	
 
// Inverted navbar links
 
$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
 
$navbar-inverse-link-hover-color:           #fff !default;
 
$navbar-inverse-link-hover-bg:              transparent !default;
 
$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
 
$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
 
$navbar-inverse-link-disabled-color:        #444 !default;
 
$navbar-inverse-link-disabled-bg:           transparent !default;
 

	
 
// Inverted navbar brand label
 
$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
 
$navbar-inverse-brand-hover-color:          #fff !default;
 
$navbar-inverse-brand-hover-bg:             transparent !default;
 

	
 
// Inverted navbar toggle
 
$navbar-inverse-toggle-hover-bg:            #333 !default;
 
$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
 
$navbar-inverse-toggle-border-color:        #333 !default;
 

	
 

	
 
//== Navs
 
//
 
//##
 

	
 
//=== Shared nav styles
 
$nav-link-padding:                          10px 15px !default;
 
$nav-link-hover-bg:                         $gray-lighter !default;
 

	
 
$nav-disabled-link-color:                   $gray-light !default;
 
$nav-disabled-link-hover-color:             $gray-light !default;
 

	
 
//== Tabs
 
$nav-tabs-border-color:                     #ddd !default;
 

	
 
$nav-tabs-link-hover-border-color:          $gray-lighter !default;
 

	
 
$nav-tabs-active-link-hover-bg:             $body-bg !default;
 
$nav-tabs-active-link-hover-color:          $gray !default;
 
$nav-tabs-active-link-hover-border-color:   #ddd !default;
 

	
 
$nav-tabs-justified-link-border-color:            #ddd !default;
 
$nav-tabs-justified-active-link-border-color:     $body-bg !default;
 

	
 
//== Pills
 
$nav-pills-border-radius:                   $border-radius-base !default;
 
$nav-pills-active-link-hover-bg:            $component-active-bg !default;
 
$nav-pills-active-link-hover-color:         $component-active-color !default;
 

	
 

	
 
//== Pagination
 
//
 
//##
 

	
 
$pagination-color:                     $link-color !default;
 
$pagination-bg:                        #fff !default;
 
$pagination-border:                    #ddd !default;
 

	
 
$pagination-hover-color:               $link-hover-color !default;
 
$pagination-hover-bg:                  $gray-lighter !default;
 
$pagination-hover-border:              #ddd !default;
 

	
 
$pagination-active-color:              #fff !default;
 
$pagination-active-bg:                 $brand-primary !default;
 
$pagination-active-border:             $brand-primary !default;
 

	
 
$pagination-disabled-color:            $gray-light !default;
 
$pagination-disabled-bg:               #fff !default;
 
$pagination-disabled-border:           #ddd !default;
 

	
 

	
 
//== Pager
 
//
 
//##
 

	
 
$pager-bg:                             $pagination-bg !default;
 
$pager-border:                         $pagination-border !default;
 
$pager-border-radius:                  15px !default;
 

	
 
$pager-hover-bg:                       $pagination-hover-bg !default;
 

	
 
$pager-active-bg:                      $pagination-active-bg !default;
 
$pager-active-color:                   $pagination-active-color !default;
 

	
 
$pager-disabled-color:                 $pagination-disabled-color !default;
 

	
 

	
 
//== Jumbotron
 
//
 
//##
 

	
 
$jumbotron-padding:              30px !default;
 
$jumbotron-color:                inherit !default;
 
$jumbotron-bg:                   $gray-lighter !default;
 
$jumbotron-heading-color:        inherit !default;
 
$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
 
$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
 

	
 

	
 
//== Form states and alerts
 
//
 
//## Define colors for form feedback states and, by default, alerts.
 

	
 
$state-success-text:             #3c763d !default;
 
$state-success-bg:               #dff0d8 !default;
 
$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
 

	
 
$state-info-text:                #31708f !default;
 
$state-info-bg:                  #d9edf7 !default;
 
$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
 

	
 
$state-warning-text:             #8a6d3b !default;
 
$state-warning-bg:               #fcf8e3 !default;
 
$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
 

	
 
$state-danger-text:              #a94442 !default;
 
$state-danger-bg:                #f2dede !default;
 
$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
 

	
 

	
 
//== Tooltips
 
//
 
//##
 

	
 
//** Tooltip max width
 
$tooltip-max-width:           200px !default;
 
//** Tooltip text color
 
$tooltip-color:               #fff !default;
 
//** Tooltip background color
 
$tooltip-bg:                  #000 !default;
 
$tooltip-opacity:             .9 !default;
 

	
 
//** Tooltip arrow width
 
$tooltip-arrow-width:         5px !default;
 
//** Tooltip arrow color
 
$tooltip-arrow-color:         $tooltip-bg !default;
 

	
 

	
 
//== Popovers
 
//
 
//##
 

	
 
//** Popover body background color
 
$popover-bg:                          #fff !default;
 
//** Popover maximum width
 
$popover-max-width:                   276px !default;
 
//** Popover border color
 
$popover-border-color:                rgba(0,0,0,.2) !default;
 
//** Popover fallback border color
 
$popover-fallback-border-color:       #ccc !default;
 

	
 
//** Popover title background color
 
$popover-title-bg:                    darken($popover-bg, 3%) !default;
 

	
 
//** Popover arrow width
 
$popover-arrow-width:                 10px !default;
 
//** Popover arrow color
 
$popover-arrow-color:                 $popover-bg !default;
 

	
 
//** Popover outer arrow width
 
$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
 
//** Popover outer arrow color
 
$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
 
//** Popover outer arrow fallback color
 
$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
 

	
 

	
 
//== Labels
 
//
 
//##
 

	
 
//** Default label background color
 
$label-default-bg:            $gray-light !default;
 
//** Primary label background color
 
$label-primary-bg:            $brand-primary !default;
 
//** Success label background color
 
$label-success-bg:            $brand-success !default;
 
//** Info label background color
 
$label-info-bg:               $brand-info !default;
 
//** Warning label background color
 
$label-warning-bg:            $brand-warning !default;
 
//** Danger label background color
 
$label-danger-bg:             $brand-danger !default;
 

	
 
//** Default label text color
 
$label-color:                 #fff !default;
 
//** Default text color of a linked label
 
$label-link-hover-color:      #fff !default;
 

	
 

	
 
//== Modals
 
//
 
//##
 

	
 
//** Padding applied to the modal body
 
$modal-inner-padding:         15px !default;
 

	
 
//** Padding applied to the modal title
 
$modal-title-padding:         15px !default;
 
//** Modal title line-height
 
$modal-title-line-height:     $line-height-base !default;
 

	
 
//** Background color of modal content area
 
$modal-content-bg:                             #fff !default;
 
//** Modal content border color
 
$modal-content-border-color:                   rgba(0,0,0,.2) !default;
 
//** Modal content border color **for IE8**
 
$modal-content-fallback-border-color:          #999 !default;
 

	
 
//** Modal backdrop background color
 
$modal-backdrop-bg:           #000 !default;
 
//** Modal backdrop opacity
 
$modal-backdrop-opacity:      .5 !default;
 
//** Modal header border color
 
$modal-header-border-color:   #e5e5e5 !default;
 
//** Modal footer border color
 
$modal-footer-border-color:   $modal-header-border-color !default;
 

	
 
$modal-lg:                    900px !default;
 
$modal-md:                    600px !default;
 
$modal-sm:                    300px !default;
 

	
 

	
 
//== Alerts
 
//
 
//## Define alert colors, border radius, and padding.
 

	
 
$alert-padding:               15px !default;
 
$alert-border-radius:         $border-radius-base !default;
 
$alert-link-font-weight:      bold !default;
 

	
 
$alert-success-bg:            $state-success-bg !default;
 
$alert-success-text:          $state-success-text !default;
 
$alert-success-border:        $state-success-border !default;
 

	
 
$alert-info-bg:               $state-info-bg !default;
 
$alert-info-text:             $state-info-text !default;
 
$alert-info-border:           $state-info-border !default;
 

	
 
$alert-warning-bg:            $state-warning-bg !default;
 
$alert-warning-text:          $state-warning-text !default;
 
$alert-warning-border:        $state-warning-border !default;
 

	
 
$alert-danger-bg:             $state-danger-bg !default;
 
$alert-danger-text:           $state-danger-text !default;
 
$alert-danger-border:         $state-danger-border !default;
 

	
 

	
 
//== Progress bars
 
//
 
//##
 

	
 
//** Background color of the whole progress component
 
$progress-bg:                 #f5f5f5 !default;
 
//** Progress bar text color
 
$progress-bar-color:          #fff !default;
 
//** Variable for setting rounded corners on progress bar.
 
$progress-border-radius:      $border-radius-base !default;
 

	
 
//** Default progress bar color
 
$progress-bar-bg:             $brand-primary !default;
 
//** Success progress bar color
 
$progress-bar-success-bg:     $brand-success !default;
 
//** Warning progress bar color
 
$progress-bar-warning-bg:     $brand-warning !default;
 
//** Danger progress bar color
 
$progress-bar-danger-bg:      $brand-danger !default;
 
//** Info progress bar color
 
$progress-bar-info-bg:        $brand-info !default;
 

	
 

	
 
//== List group
 
//
 
//##
 

	
 
//** Background color on `.list-group-item`
 
$list-group-bg:                 #fff !default;
 
//** `.list-group-item` border color
 
$list-group-border:             #ddd !default;
 
//** List group border radius
 
$list-group-border-radius:      $border-radius-base !default;
 

	
 
//** Background color of single list items on hover
 
$list-group-hover-bg:           #f5f5f5 !default;
 
//** Text color of active list items
 
$list-group-active-color:       $component-active-color !default;
 
//** Background color of active list items
 
$list-group-active-bg:          $component-active-bg !default;
 
//** Border color of active list elements
 
$list-group-active-border:      $list-group-active-bg !default;
 
//** Text color for content within active list items
 
$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
 

	
 
//** Text color of disabled list items
 
$list-group-disabled-color:      $gray-light !default;
 
//** Background color of disabled list items
 
$list-group-disabled-bg:         $gray-lighter !default;
 
//** Text color for content within disabled list items
 
$list-group-disabled-text-color: $list-group-disabled-color !default;
 

	
 
$list-group-link-color:         #555 !default;
 
$list-group-link-hover-color:   $list-group-link-color !default;
 
$list-group-link-heading-color: #333 !default;
 

	
 

	
 
//== Panels
 
//
 
//##
 

	
 
$panel-bg:                    #fff !default;
 
$panel-body-padding:          15px !default;
 
$panel-heading-padding:       10px 15px !default;
 
$panel-footer-padding:        $panel-heading-padding !default;
 
$panel-border-radius:         $border-radius-base !default;
 

	
 
//** Border color for elements within panels
 
$panel-inner-border:          #ddd !default;
 
$panel-footer-bg:             #f5f5f5 !default;
 

	
 
$panel-default-text:          $gray-dark !default;
 
$panel-default-border:        #ddd !default;
 
$panel-default-heading-bg:    #f5f5f5 !default;
 

	
 
$panel-primary-text:          #fff !default;
 
$panel-primary-border:        $brand-primary !default;
 
$panel-primary-heading-bg:    $brand-primary !default;
 

	
 
$panel-success-text:          $state-success-text !default;
 
$panel-success-border:        $state-success-border !default;
 
$panel-success-heading-bg:    $state-success-bg !default;
 

	
 
$panel-info-text:             $state-info-text !default;
 
$panel-info-border:           $state-info-border !default;
 
$panel-info-heading-bg:       $state-info-bg !default;
 

	
 
$panel-warning-text:          $state-warning-text !default;
 
$panel-warning-border:        $state-warning-border !default;
 
$panel-warning-heading-bg:    $state-warning-bg !default;
 

	
 
$panel-danger-text:           $state-danger-text !default;
 
$panel-danger-border:         $state-danger-border !default;
 
$panel-danger-heading-bg:     $state-danger-bg !default;
 

	
 

	
 
//== Thumbnails
 
//
 
//##
 

	
 
//** Padding around the thumbnail image
 
$thumbnail-padding:           4px !default;
 
//** Thumbnail background color
 
$thumbnail-bg:                $body-bg !default;
 
//** Thumbnail border color
 
$thumbnail-border:            #ddd !default;
 
//** Thumbnail border radius
 
$thumbnail-border-radius:     $border-radius-base !default;
 

	
 
//** Custom text color for thumbnail captions
 
$thumbnail-caption-color:     $text-color !default;
 
//** Padding around the thumbnail caption
 
$thumbnail-caption-padding:   9px !default;
 

	
 

	
 
//== Wells
 
//
 
//##
 

	
 
$well-bg:                     #f5f5f5 !default;
 
$well-border:                 darken($well-bg, 7%) !default;
 

	
 

	
 
//== Badges
 
//
 
//##
 

	
 
$badge-color:                 #fff !default;
 
//** Linked badge text color on hover
 
$badge-link-hover-color:      #fff !default;
 
$badge-bg:                    $gray-light !default;
 

	
 
//** Badge text color in active nav link
 
$badge-active-color:          $link-color !default;
 
//** Badge background color in active nav link
 
$badge-active-bg:             #fff !default;
 

	
 
$badge-font-weight:           bold !default;
 
$badge-line-height:           1 !default;
 
$badge-border-radius:         10px !default;
 

	
 

	
 
//== Breadcrumbs
 
//
 
//##
 

	
 
$breadcrumb-padding-vertical:   8px !default;
 
$breadcrumb-padding-horizontal: 15px !default;
 
//** Breadcrumb background color
 
$breadcrumb-bg:                 #f5f5f5 !default;
 
//** Breadcrumb text color
 
$breadcrumb-color:              #ccc !default;
 
//** Text color of current page in the breadcrumb
 
$breadcrumb-active-color:       $gray-light !default;
 
//** Textual separator for between breadcrumb elements
 
$breadcrumb-separator:          "/" !default;
 

	
 

	
 
//== Carousel
 
//
 
//##
 

	
 
$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
 

	
 
$carousel-control-color:                      #fff !default;
 
$carousel-control-width:                      15% !default;
 
$carousel-control-opacity:                    .5 !default;
 
$carousel-control-font-size:                  20px !default;
 

	
 
$carousel-indicator-active-bg:                #fff !default;
 
$carousel-indicator-border-color:             #fff !default;
 

	
 
$carousel-caption-color:                      #fff !default;
 

	
 

	
 
//== Close
 
//
 
//##
 

	
 
$close-font-weight:           bold !default;
 
$close-color:                 #000 !default;
 
$close-text-shadow:           0 1px 0 #fff !default;
 

	
 

	
 
//== Code
 
//
 
//##
 

	
 
$code-color:                  #c7254e !default;
 
$code-bg:                     #f9f2f4 !default;
 

	
 
$kbd-color:                   #fff !default;
 
$kbd-bg:                      #333 !default;
 

	
 
$pre-bg:                      #f5f5f5 !default;
 
$pre-color:                   $gray-dark !default;
 
$pre-border-color:            #ccc !default;
 
$pre-scrollable-max-height:   340px !default;
 

	
 

	
 
//== Type
 
//
 
//##
 

	
 
//** Horizontal offset for forms and lists.
 
$component-offset-horizontal: 180px !default;
 
//** Text muted color
 
$text-muted:                  $gray-light !default;
 
//** Abbreviations and acronyms border color
 
$abbr-border-color:           $gray-light !default;
 
//** Headings small color
 
$headings-small-color:        $gray-light !default;
 
//** Blockquote small color
 
$blockquote-small-color:      $gray-light !default;
 
//** Blockquote font size
 
$blockquote-font-size:        ($font-size-base * 1.25) !default;
 
//** Blockquote border color
 
$blockquote-border-color:     $gray-lighter !default;
 
//** Page header border color
 
$page-header-border-color:    $gray-lighter !default;
 
//** Width of horizontal description list titles
 
$dl-horizontal-offset:        $component-offset-horizontal !default;
 
//** Point at which .dl-horizontal becomes horizontal
 
$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;
 
//** Horizontal line color.
 
$hr-border:                   $gray-lighter !default;
static/bootstrap/stylesheets/bootstrap/_wells.scss
Show inline comments
 
new file 100644
 
//
 
// Wells
 
// --------------------------------------------------
 

	
 

	
 
// Base class
 
.well {
 
  min-height: 20px;
 
  padding: 19px;
 
  margin-bottom: 20px;
 
  background-color: $well-bg;
 
  border: 1px solid $well-border;
 
  border-radius: $border-radius-base;
 
  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
 
  blockquote {
 
    border-color: #ddd;
 
    border-color: rgba(0,0,0,.15);
 
  }
 
}
 

	
 
// Sizes
 
.well-lg {
 
  padding: 24px;
 
  border-radius: $border-radius-large;
 
}
 
.well-sm {
 
  padding: 9px;
 
  border-radius: $border-radius-small;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_alerts.scss
Show inline comments
 
new file 100644
 
// Alerts
 

	
 
@mixin alert-variant($background, $border, $text-color) {
 
  background-color: $background;
 
  border-color: $border;
 
  color: $text-color;
 

	
 
  hr {
 
    border-top-color: darken($border, 5%);
 
  }
 
  .alert-link {
 
    color: darken($text-color, 10%);
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss
Show inline comments
 
new file 100644
 
// Contextual backgrounds
 

	
 
// [converter] $parent hack
 
@mixin bg-variant($parent, $color) {
 
  #{$parent} {
 
    background-color: $color;
 
  }
 
  a#{$parent}:hover,
 
  a#{$parent}:focus {
 
    background-color: darken($color, 10%);
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss
Show inline comments
 
new file 100644
 
// Single side border-radius
 

	
 
@mixin border-top-radius($radius) {
 
  border-top-right-radius: $radius;
 
   border-top-left-radius: $radius;
 
}
 
@mixin border-right-radius($radius) {
 
  border-bottom-right-radius: $radius;
 
     border-top-right-radius: $radius;
 
}
 
@mixin border-bottom-radius($radius) {
 
  border-bottom-right-radius: $radius;
 
   border-bottom-left-radius: $radius;
 
}
 
@mixin border-left-radius($radius) {
 
  border-bottom-left-radius: $radius;
 
     border-top-left-radius: $radius;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_buttons.scss
Show inline comments
 
new file 100644
 
// Button variants
 
//
 
// Easily pump out default styles, as well as :hover, :focus, :active,
 
// and disabled options for all buttons
 

	
 
@mixin button-variant($color, $background, $border) {
 
  color: $color;
 
  background-color: $background;
 
  border-color: $border;
 

	
 
  &:focus,
 
  &.focus {
 
    color: $color;
 
    background-color: darken($background, 10%);
 
        border-color: darken($border, 25%);
 
  }
 
  &:hover {
 
    color: $color;
 
    background-color: darken($background, 10%);
 
        border-color: darken($border, 12%);
 
  }
 
  &:active,
 
  &.active,
 
  .open > &.dropdown-toggle {
 
    color: $color;
 
    background-color: darken($background, 10%);
 
        border-color: darken($border, 12%);
 

	
 
    &:hover,
 
    &:focus,
 
    &.focus {
 
      color: $color;
 
      background-color: darken($background, 17%);
 
          border-color: darken($border, 25%);
 
    }
 
  }
 
  &:active,
 
  &.active,
 
  .open > &.dropdown-toggle {
 
    background-image: none;
 
  }
 
  &.disabled,
 
  &[disabled],
 
  fieldset[disabled] & {
 
    &:hover,
 
    &:focus,
 
    &.focus {
 
      background-color: $background;
 
          border-color: $border;
 
    }
 
  }
 

	
 
  .badge {
 
    color: $background;
 
    background-color: $color;
 
  }
 
}
 

	
 
// Button sizes
 
@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
 
  padding: $padding-vertical $padding-horizontal;
 
  font-size: $font-size;
 
  line-height: $line-height;
 
  border-radius: $border-radius;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_center-block.scss
Show inline comments
 
new file 100644
 
// Center-align a block level element
 

	
 
@mixin center-block() {
 
  display: block;
 
  margin-left: auto;
 
  margin-right: auto;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss
Show inline comments
 
new file 100644
 
// Clearfix
 
//
 
// For modern browsers
 
// 1. The space content is one way to avoid an Opera bug when the
 
//    contenteditable attribute is included anywhere else in the document.
 
//    Otherwise it causes space to appear at the top and bottom of elements
 
//    that are clearfixed.
 
// 2. The use of `table` rather than `block` is only necessary if using
 
//    `:before` to contain the top-margins of child elements.
 
//
 
// Source: http://nicolasgallagher.com/micro-clearfix-hack/
 

	
 
@mixin clearfix() {
 
  &:before,
 
  &:after {
 
    content: " "; // 1
 
    display: table; // 2
 
  }
 
  &:after {
 
    clear: both;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_forms.scss
Show inline comments
 
new file 100644
 
// Form validation states
 
//
 
// Used in forms.less to generate the form validation CSS for warnings, errors,
 
// and successes.
 

	
 
@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
 
  // Color the label and help text
 
  .help-block,
 
  .control-label,
 
  .radio,
 
  .checkbox,
 
  .radio-inline,
 
  .checkbox-inline,
 
  &.radio label,
 
  &.checkbox label,
 
  &.radio-inline label,
 
  &.checkbox-inline label  {
 
    color: $text-color;
 
  }
 
  // Set the border and box shadow on specific inputs to match
 
  .form-control {
 
    border-color: $border-color;
 
    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
 
    &:focus {
 
      border-color: darken($border-color, 10%);
 
      $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
 
      @include box-shadow($shadow);
 
    }
 
  }
 
  // Set validation states also for addons
 
  .input-group-addon {
 
    color: $text-color;
 
    border-color: $border-color;
 
    background-color: $background-color;
 
  }
 
  // Optional feedback icon
 
  .form-control-feedback {
 
    color: $text-color;
 
  }
 
}
 

	
 

	
 
// Form control focus state
 
//
 
// Generate a customized focus state and for any input with the specified color,
 
// which defaults to the `$input-border-focus` variable.
 
//
 
// We highly encourage you to not customize the default value, but instead use
 
// this to tweak colors on an as-needed basis. This aesthetic change is based on
 
// WebKit's default styles, but applicable to a wider range of browsers. Its
 
// usability and accessibility should be taken into account with any change.
 
//
 
// Example usage: change the default blue border and shadow to white for better
 
// contrast against a dark gray background.
 
@mixin form-control-focus($color: $input-border-focus) {
 
  $color-rgba: rgba(red($color), green($color), blue($color), .6);
 
  &:focus {
 
    border-color: $color;
 
    outline: 0;
 
    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
 
  }
 
}
 

	
 
// Form control sizing
 
//
 
// Relative text size, padding, and border-radii changes for form controls. For
 
// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
 
// element gets special love because it's special, and that's a fact!
 
// [converter] $parent hack
 
@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
 
  #{$parent} {
 
    height: $input-height;
 
    padding: $padding-vertical $padding-horizontal;
 
    font-size: $font-size;
 
    line-height: $line-height;
 
    border-radius: $border-radius;
 
  }
 

	
 
  select#{$parent} {
 
    height: $input-height;
 
    line-height: $input-height;
 
  }
 

	
 
  textarea#{$parent},
 
  select[multiple]#{$parent} {
 
    height: auto;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_gradients.scss
Show inline comments
 
new file 100644
 
// Gradients
 

	
 

	
 

	
 
// Horizontal gradient, from left to right
 
//
 
// Creates two color stops, start and end, by specifying a color and position for each color stop.
 
// Color stops are not available in IE9 and below.
 
@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
 
  background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
 
  background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
 
  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
 
  background-repeat: repeat-x;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
 
}
 

	
 
// Vertical gradient, from top to bottom
 
//
 
// Creates two color stops, start and end, by specifying a color and position for each color stop.
 
// Color stops are not available in IE9 and below.
 
@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
 
  background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Safari 5.1-6, Chrome 10+
 
  background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Opera 12
 
  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
 
  background-repeat: repeat-x;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
 
}
 

	
 
@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
 
  background-repeat: repeat-x;
 
  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
 
  background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
 
  background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
 
}
 
@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
 
  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
 
  background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
 
  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
 
  background-repeat: no-repeat;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
 
}
 
@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
 
  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
 
  background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
 
  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
 
  background-repeat: no-repeat;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
 
}
 
@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
 
  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
 
  background-image: radial-gradient(circle, $inner-color, $outer-color);
 
  background-repeat: no-repeat;
 
}
 
@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
 
  background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
 
  background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
 
  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss
Show inline comments
 
new file 100644
 
// Framework grid generation
 
//
 
// Used only by Bootstrap to generate the correct number of grid classes given
 
// any value of `$grid-columns`.
 

	
 
// [converter] This is defined recursively in LESS, but Sass supports real loops
 
@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
 
  @for $i from (1 + 1) through $grid-columns {
 
    $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
 
  }
 
  #{$list} {
 
    position: relative;
 
    // Prevent columns from collapsing when empty
 
    min-height: 1px;
 
    // Inner gutter via padding
 
    padding-left:  ceil(($grid-gutter-width / 2));
 
    padding-right: floor(($grid-gutter-width / 2));
 
  }
 
}
 

	
 

	
 
// [converter] This is defined recursively in LESS, but Sass supports real loops
 
@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
 
  @for $i from (1 + 1) through $grid-columns {
 
    $list: "#{$list}, .col-#{$class}-#{$i}";
 
  }
 
  #{$list} {
 
    float: left;
 
  }
 
}
 

	
 

	
 
@mixin calc-grid-column($index, $class, $type) {
 
  @if ($type == width) and ($index > 0) {
 
    .col-#{$class}-#{$index} {
 
      width: percentage(($index / $grid-columns));
 
    }
 
  }
 
  @if ($type == push) and ($index > 0) {
 
    .col-#{$class}-push-#{$index} {
 
      left: percentage(($index / $grid-columns));
 
    }
 
  }
 
  @if ($type == push) and ($index == 0) {
 
    .col-#{$class}-push-0 {
 
      left: auto;
 
    }
 
  }
 
  @if ($type == pull) and ($index > 0) {
 
    .col-#{$class}-pull-#{$index} {
 
      right: percentage(($index / $grid-columns));
 
    }
 
  }
 
  @if ($type == pull) and ($index == 0) {
 
    .col-#{$class}-pull-0 {
 
      right: auto;
 
    }
 
  }
 
  @if ($type == offset) {
 
    .col-#{$class}-offset-#{$index} {
 
      margin-left: percentage(($index / $grid-columns));
 
    }
 
  }
 
}
 

	
 
// [converter] This is defined recursively in LESS, but Sass supports real loops
 
@mixin loop-grid-columns($columns, $class, $type) {
 
  @for $i from 0 through $columns {
 
    @include calc-grid-column($i, $class, $type);
 
  }
 
}
 

	
 

	
 
// Create grid for specific class
 
@mixin make-grid($class) {
 
  @include float-grid-columns($class);
 
  @include loop-grid-columns($grid-columns, $class, width);
 
  @include loop-grid-columns($grid-columns, $class, pull);
 
  @include loop-grid-columns($grid-columns, $class, push);
 
  @include loop-grid-columns($grid-columns, $class, offset);
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_grid.scss
Show inline comments
 
new file 100644
 
// Grid system
 
//
 
// Generate semantic grid columns with these mixins.
 

	
 
// Centered container element
 
@mixin container-fixed($gutter: $grid-gutter-width) {
 
  margin-right: auto;
 
  margin-left: auto;
 
  padding-left:  floor(($gutter / 2));
 
  padding-right: ceil(($gutter / 2));
 
  @include clearfix;
 
}
 

	
 
// Creates a wrapper for a series of columns
 
@mixin make-row($gutter: $grid-gutter-width) {
 
  margin-left:  ceil(($gutter / -2));
 
  margin-right: floor(($gutter / -2));
 
  @include clearfix;
 
}
 

	
 
// Generate the extra small columns
 
@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
 
  position: relative;
 
  float: left;
 
  width: percentage(($columns / $grid-columns));
 
  min-height: 1px;
 
  padding-left:  ($gutter / 2);
 
  padding-right: ($gutter / 2);
 
}
 
@mixin make-xs-column-offset($columns) {
 
  margin-left: percentage(($columns / $grid-columns));
 
}
 
@mixin make-xs-column-push($columns) {
 
  left: percentage(($columns / $grid-columns));
 
}
 
@mixin make-xs-column-pull($columns) {
 
  right: percentage(($columns / $grid-columns));
 
}
 

	
 
// Generate the small columns
 
@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left:  ($gutter / 2);
 
  padding-right: ($gutter / 2);
 

	
 
  @media (min-width: $screen-sm-min) {
 
    float: left;
 
    width: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-sm-column-offset($columns) {
 
  @media (min-width: $screen-sm-min) {
 
    margin-left: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-sm-column-push($columns) {
 
  @media (min-width: $screen-sm-min) {
 
    left: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-sm-column-pull($columns) {
 
  @media (min-width: $screen-sm-min) {
 
    right: percentage(($columns / $grid-columns));
 
  }
 
}
 

	
 
// Generate the medium columns
 
@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left:  ($gutter / 2);
 
  padding-right: ($gutter / 2);
 

	
 
  @media (min-width: $screen-md-min) {
 
    float: left;
 
    width: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-md-column-offset($columns) {
 
  @media (min-width: $screen-md-min) {
 
    margin-left: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-md-column-push($columns) {
 
  @media (min-width: $screen-md-min) {
 
    left: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-md-column-pull($columns) {
 
  @media (min-width: $screen-md-min) {
 
    right: percentage(($columns / $grid-columns));
 
  }
 
}
 

	
 
// Generate the large columns
 
@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left:  ($gutter / 2);
 
  padding-right: ($gutter / 2);
 

	
 
  @media (min-width: $screen-lg-min) {
 
    float: left;
 
    width: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-lg-column-offset($columns) {
 
  @media (min-width: $screen-lg-min) {
 
    margin-left: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-lg-column-push($columns) {
 
  @media (min-width: $screen-lg-min) {
 
    left: percentage(($columns / $grid-columns));
 
  }
 
}
 
@mixin make-lg-column-pull($columns) {
 
  @media (min-width: $screen-lg-min) {
 
    right: percentage(($columns / $grid-columns));
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss
Show inline comments
 
new file 100644
 
// CSS image replacement
 
//
 
// Heads up! v3 launched with only `.hide-text()`, but per our pattern for
 
// mixins being reused as classes with the same name, this doesn't hold up. As
 
// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
 
//
 
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
 

	
 
// Deprecated as of v3.0.1 (has been removed in v4)
 
@mixin hide-text() {
 
  font: 0/0 a;
 
  color: transparent;
 
  text-shadow: none;
 
  background-color: transparent;
 
  border: 0;
 
}
 

	
 
// New mixin to use as of v3.0.1
 
@mixin text-hide() {
 
  @include hide-text;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_image.scss
Show inline comments
 
new file 100644
 
// Image Mixins
 
// - Responsive image
 
// - Retina image
 

	
 

	
 
// Responsive image
 
//
 
// Keep images from scaling beyond the width of their parents.
 
@mixin img-responsive($display: block) {
 
  display: $display;
 
  max-width: 100%; // Part 1: Set a maximum relative to the parent
 
  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
 
}
 

	
 

	
 
// Retina image
 
//
 
// Short retina mixin for setting background-image and -size. Note that the
 
// spelling of `min--moz-device-pixel-ratio` is intentional.
 
@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
 
  background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
 

	
 
  @media
 
  only screen and (-webkit-min-device-pixel-ratio: 2),
 
  only screen and (   min--moz-device-pixel-ratio: 2),
 
  only screen and (     -o-min-device-pixel-ratio: 2/1),
 
  only screen and (        min-device-pixel-ratio: 2),
 
  only screen and (                min-resolution: 192dpi),
 
  only screen and (                min-resolution: 2dppx) {
 
    background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
 
    background-size: $width-1x $height-1x;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_labels.scss
Show inline comments
 
new file 100644
 
// Labels
 

	
 
@mixin label-variant($color) {
 
  background-color: $color;
 

	
 
  &[href] {
 
    &:hover,
 
    &:focus {
 
      background-color: darken($color, 10%);
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_list-group.scss
Show inline comments
 
new file 100644
 
// List Groups
 

	
 
@mixin list-group-item-variant($state, $background, $color) {
 
  .list-group-item-#{$state} {
 
    color: $color;
 
    background-color: $background;
 

	
 
    // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}
 
  }
 

	
 
  a.list-group-item-#{$state},
 
  button.list-group-item-#{$state} {
 
    color: $color;
 

	
 
    .list-group-item-heading {
 
      color: inherit;
 
    }
 

	
 
    &:hover,
 
    &:focus {
 
      color: $color;
 
      background-color: darken($background, 5%);
 
    }
 
    &.active,
 
    &.active:hover,
 
    &.active:focus {
 
      color: #fff;
 
      background-color: $color;
 
      border-color: $color;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss
Show inline comments
 
new file 100644
 
// Horizontal dividers
 
//
 
// Dividers (basically an hr) within dropdowns and nav lists
 

	
 
@mixin nav-divider($color: #e5e5e5) {
 
  height: 1px;
 
  margin: (($line-height-computed / 2) - 1) 0;
 
  overflow: hidden;
 
  background-color: $color;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss
Show inline comments
 
new file 100644
 
// Navbar vertical align
 
//
 
// Vertically center elements in the navbar.
 
// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
 

	
 
@mixin navbar-vertical-align($element-height) {
 
  margin-top: (($navbar-height - $element-height) / 2);
 
  margin-bottom: (($navbar-height - $element-height) / 2);
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_opacity.scss
Show inline comments
 
new file 100644
 
// Opacity
 

	
 
@mixin opacity($opacity) {
 
  opacity: $opacity;
 
  // IE8 filter
 
  $opacity-ie: ($opacity * 100);
 
  filter: alpha(opacity=$opacity-ie);
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_pagination.scss
Show inline comments
 
new file 100644
 
// Pagination
 

	
 
@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
 
  > li {
 
    > a,
 
    > span {
 
      padding: $padding-vertical $padding-horizontal;
 
      font-size: $font-size;
 
      line-height: $line-height;
 
    }
 
    &:first-child {
 
      > a,
 
      > span {
 
        @include border-left-radius($border-radius);
 
      }
 
    }
 
    &:last-child {
 
      > a,
 
      > span {
 
        @include border-right-radius($border-radius);
 
      }
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_panels.scss
Show inline comments
 
new file 100644
 
// Panels
 

	
 
@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
 
  border-color: $border;
 

	
 
  & > .panel-heading {
 
    color: $heading-text-color;
 
    background-color: $heading-bg-color;
 
    border-color: $heading-border;
 

	
 
    + .panel-collapse > .panel-body {
 
      border-top-color: $border;
 
    }
 
    .badge {
 
      color: $heading-bg-color;
 
      background-color: $heading-text-color;
 
    }
 
  }
 
  & > .panel-footer {
 
    + .panel-collapse > .panel-body {
 
      border-bottom-color: $border;
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss
Show inline comments
 
new file 100644
 
// Progress bars
 

	
 
@mixin progress-bar-variant($color) {
 
  background-color: $color;
 

	
 
  // Deprecated parent class requirement as of v3.2.0
 
  .progress-striped & {
 
    @include gradient-striped;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss
Show inline comments
 
new file 100644
 
// Reset filters for IE
 
//
 
// When you need to remove a gradient background, do not forget to use this to reset
 
// the IE filter for IE9 and below.
 

	
 
@mixin reset-filter() {
 
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_reset-text.scss
Show inline comments
 
new file 100644
 
@mixin reset-text() {
 
  font-family: $font-family-base;
 
  // We deliberately do NOT reset font-size.
 
  font-style: normal;
 
  font-weight: normal;
 
  letter-spacing: normal;
 
  line-break: auto;
 
  line-height: $line-height-base;
 
  text-align: left; // Fallback for where `start` is not supported
 
  text-align: start;
 
  text-decoration: none;
 
  text-shadow: none;
 
  text-transform: none;
 
  white-space: normal;
 
  word-break: normal;
 
  word-spacing: normal;
 
  word-wrap: normal;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_resize.scss
Show inline comments
 
new file 100644
 
// Resize anything
 

	
 
@mixin resizable($direction) {
 
  resize: $direction; // Options: horizontal, vertical, both
 
  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss
Show inline comments
 
new file 100644
 
// Responsive utilities
 

	
 
//
 
// More easily include all the states for responsive-utilities.less.
 
// [converter] $parent hack
 
@mixin responsive-visibility($parent) {
 
  #{$parent} {
 
    display: block !important;
 
  }
 
  table#{$parent}  { display: table !important; }
 
  tr#{$parent}     { display: table-row !important; }
 
  th#{$parent},
 
  td#{$parent}     { display: table-cell !important; }
 
}
 

	
 
// [converter] $parent hack
 
@mixin responsive-invisibility($parent) {
 
  #{$parent} {
 
    display: none !important;
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_size.scss
Show inline comments
 
new file 100644
 
// Sizing shortcuts
 

	
 
@mixin size($width, $height) {
 
  width: $width;
 
  height: $height;
 
}
 

	
 
@mixin square($size) {
 
  @include size($size, $size);
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss
Show inline comments
 
new file 100644
 
// WebKit-style focus
 

	
 
@mixin tab-focus() {
 
  // WebKit-specific. Other browsers will keep their default outline style.
 
  // (Initially tried to also force default via `outline: initial`,
 
  // but that seems to erroneously remove the outline in Firefox altogether.)
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_table-row.scss
Show inline comments
 
new file 100644
 
// Tables
 

	
 
@mixin table-row-variant($state, $background) {
 
  // Exact selectors below required to override `.table-striped` and prevent
 
  // inheritance to nested tables.
 
  .table > thead > tr,
 
  .table > tbody > tr,
 
  .table > tfoot > tr {
 
    > td.#{$state},
 
    > th.#{$state},
 
    &.#{$state} > td,
 
    &.#{$state} > th {
 
      background-color: $background;
 
    }
 
  }
 

	
 
  // Hover states for `.table-hover`
 
  // Note: this is not available for cells or rows within `thead` or `tfoot`.
 
  .table-hover > tbody > tr {
 
    > td.#{$state}:hover,
 
    > th.#{$state}:hover,
 
    &.#{$state}:hover > td,
 
    &:hover > .#{$state},
 
    &.#{$state}:hover > th {
 
      background-color: darken($background, 5%);
 
    }
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss
Show inline comments
 
new file 100644
 
// Typography
 

	
 
// [converter] $parent hack
 
@mixin text-emphasis-variant($parent, $color) {
 
  #{$parent} {
 
    color: $color;
 
  }
 
  a#{$parent}:hover,
 
  a#{$parent}:focus {
 
    color: darken($color, 10%);
 
  }
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss
Show inline comments
 
new file 100644
 
// Text overflow
 
// Requires inline-block or block for proper styling
 

	
 
@mixin text-overflow() {
 
  overflow: hidden;
 
  text-overflow: ellipsis;
 
  white-space: nowrap;
 
}
static/bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss
Show inline comments
 
new file 100644
 
// Vendor Prefixes
 
//
 
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
 
// Autoprefixer in our Gruntfile. They have been removed in v4.
 

	
 
// - Animations
 
// - Backface visibility
 
// - Box shadow
 
// - Box sizing
 
// - Content columns
 
// - Hyphens
 
// - Placeholder text
 
// - Transformations
 
// - Transitions
 
// - User Select
 

	
 

	
 
// Animations
 
@mixin animation($animation) {
 
  -webkit-animation: $animation;
 
       -o-animation: $animation;
 
          animation: $animation;
 
}
 
@mixin animation-name($name) {
 
  -webkit-animation-name: $name;
 
          animation-name: $name;
 
}
 
@mixin animation-duration($duration) {
 
  -webkit-animation-duration: $duration;
 
          animation-duration: $duration;
 
}
 
@mixin animation-timing-function($timing-function) {
 
  -webkit-animation-timing-function: $timing-function;
 
          animation-timing-function: $timing-function;
 
}
 
@mixin animation-delay($delay) {
 
  -webkit-animation-delay: $delay;
 
          animation-delay: $delay;
 
}
 
@mixin animation-iteration-count($iteration-count) {
 
  -webkit-animation-iteration-count: $iteration-count;
 
          animation-iteration-count: $iteration-count;
 
}
 
@mixin animation-direction($direction) {
 
  -webkit-animation-direction: $direction;
 
          animation-direction: $direction;
 
}
 
@mixin animation-fill-mode($fill-mode) {
 
  -webkit-animation-fill-mode: $fill-mode;
 
          animation-fill-mode: $fill-mode;
 
}
 

	
 
// Backface visibility
 
// Prevent browsers from flickering when using CSS 3D transforms.
 
// Default value is `visible`, but can be changed to `hidden`
 

	
 
@mixin backface-visibility($visibility) {
 
  -webkit-backface-visibility: $visibility;
 
     -moz-backface-visibility: $visibility;
 
          backface-visibility: $visibility;
 
}
 

	
 
// Drop shadows
 
//
 
// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
 
// supported browsers that have box shadow capabilities now support it.
 

	
 
@mixin box-shadow($shadow...) {
 
  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
 
          box-shadow: $shadow;
 
}
 

	
 
// Box sizing
 
@mixin box-sizing($boxmodel) {
 
  -webkit-box-sizing: $boxmodel;
 
     -moz-box-sizing: $boxmodel;
 
          box-sizing: $boxmodel;
 
}
 

	
 
// CSS3 Content Columns
 
@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
 
  -webkit-column-count: $column-count;
 
     -moz-column-count: $column-count;
 
          column-count: $column-count;
 
  -webkit-column-gap: $column-gap;
 
     -moz-column-gap: $column-gap;
 
          column-gap: $column-gap;
 
}
 

	
 
// Optional hyphenation
 
@mixin hyphens($mode: auto) {
 
  word-wrap: break-word;
 
  -webkit-hyphens: $mode;
 
     -moz-hyphens: $mode;
 
      -ms-hyphens: $mode; // IE10+
 
       -o-hyphens: $mode;
 
          hyphens: $mode;
 
}
 

	
 
// Placeholder text
 
@mixin placeholder($color: $input-color-placeholder) {
 
  // Firefox
 
  &::-moz-placeholder {
 
    color: $color;
 
    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
 
  }
 
  &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
 
  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome
 
}
 

	
 
// Transformations
 
@mixin scale($ratio...) {
 
  -webkit-transform: scale($ratio);
 
      -ms-transform: scale($ratio); // IE9 only
 
       -o-transform: scale($ratio);
 
          transform: scale($ratio);
 
}
 

	
 
@mixin scaleX($ratio) {
 
  -webkit-transform: scaleX($ratio);
 
      -ms-transform: scaleX($ratio); // IE9 only
 
       -o-transform: scaleX($ratio);
 
          transform: scaleX($ratio);
 
}
 
@mixin scaleY($ratio) {
 
  -webkit-transform: scaleY($ratio);
 
      -ms-transform: scaleY($ratio); // IE9 only
 
       -o-transform: scaleY($ratio);
 
          transform: scaleY($ratio);
 
}
 
@mixin skew($x, $y) {
 
  -webkit-transform: skewX($x) skewY($y);
 
      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
 
       -o-transform: skewX($x) skewY($y);
 
          transform: skewX($x) skewY($y);
 
}
 
@mixin translate($x, $y) {
 
  -webkit-transform: translate($x, $y);
 
      -ms-transform: translate($x, $y); // IE9 only
 
       -o-transform: translate($x, $y);
 
          transform: translate($x, $y);
 
}
 
@mixin translate3d($x, $y, $z) {
 
  -webkit-transform: translate3d($x, $y, $z);
 
          transform: translate3d($x, $y, $z);
 
}
 
@mixin rotate($degrees) {
 
  -webkit-transform: rotate($degrees);
 
      -ms-transform: rotate($degrees); // IE9 only
 
       -o-transform: rotate($degrees);
 
          transform: rotate($degrees);
 
}
 
@mixin rotateX($degrees) {
 
  -webkit-transform: rotateX($degrees);
 
      -ms-transform: rotateX($degrees); // IE9 only
 
       -o-transform: rotateX($degrees);
 
          transform: rotateX($degrees);
 
}
 
@mixin rotateY($degrees) {
 
  -webkit-transform: rotateY($degrees);
 
      -ms-transform: rotateY($degrees); // IE9 only
 
       -o-transform: rotateY($degrees);
 
          transform: rotateY($degrees);
 
}
 
@mixin perspective($perspective) {
 
  -webkit-perspective: $perspective;
 
     -moz-perspective: $perspective;
 
          perspective: $perspective;
 
}
 
@mixin perspective-origin($perspective) {
 
  -webkit-perspective-origin: $perspective;
 
     -moz-perspective-origin: $perspective;
 
          perspective-origin: $perspective;
 
}
 
@mixin transform-origin($origin) {
 
  -webkit-transform-origin: $origin;
 
     -moz-transform-origin: $origin;
 
      -ms-transform-origin: $origin; // IE9 only
 
          transform-origin: $origin;
 
}
 

	
 

	
 
// Transitions
 

	
 
@mixin transition($transition...) {
 
  -webkit-transition: $transition;
 
       -o-transition: $transition;
 
          transition: $transition;
 
}
 
@mixin transition-property($transition-property...) {
 
  -webkit-transition-property: $transition-property;
 
          transition-property: $transition-property;
 
}
 
@mixin transition-delay($transition-delay) {
 
  -webkit-transition-delay: $transition-delay;
 
          transition-delay: $transition-delay;
 
}
 
@mixin transition-duration($transition-duration...) {
 
  -webkit-transition-duration: $transition-duration;
 
          transition-duration: $transition-duration;
 
}
 
@mixin transition-timing-function($timing-function) {
 
  -webkit-transition-timing-function: $timing-function;
 
          transition-timing-function: $timing-function;
 
}
 
@mixin transition-transform($transition...) {
 
  -webkit-transition: -webkit-transform $transition;
 
     -moz-transition: -moz-transform $transition;
 
       -o-transition: -o-transform $transition;
 
          transition: transform $transition;
 
}
 

	
 

	
 
// User select
 
// For selecting text on the page
 

	
 
@mixin user-select($select) {
 
  -webkit-user-select: $select;
 
     -moz-user-select: $select;
 
      -ms-user-select: $select; // IE10+
 
          user-select: $select;
 
}
0 comments (0 inline, 0 general)